Skip to main content
GET
/
partner
/
incorporation
/
requirements
Get incorporation requirements
curl --request GET \
  --url https://api.prod.commenda.io/api/v1/partner/incorporation/requirements \
  --header 'x-api-key: <api-key>'
{
  "requirements": {
    "schemaVersion": "2026-04-22",
    "dslVersion": "mvp-2026-04-22",
    "key": "sg.private_limited_company",
    "country": "SG",
    "countryOptions": {
      "corporationType": "PRIVATE_LIMITED_COMPANY"
    },
    "name": "Singapore Private Limited Company Incorporation Requirements",
    "blocks": [
      {
        "key": "companyNames",
        "name": "Company name options"
      }
    ],
    "participantRequirements": [
      {
        "key": "directors",
        "name": "Directors",
        "role": "director",
        "allowedParticipantTypes": [
          "individual"
        ],
        "allowedResourceTypes": [
          "keyPerson"
        ],
        "documentRequirements": [
          {
            "documentKind": "passport_scan",
            "name": "Passport scan"
          },
          {
            "documentKind": "utility_bill",
            "name": "Utility bill"
          }
        ]
      }
    ]
  }
}
Returns the current requirements DSL for a selected incorporation. For Singapore private limited companies:
curl --request GET \
  --url 'https://api.prod.commenda.io/api/v1/partner/incorporation/requirements?country=SG&countryOptions[corporationType]=PRIVATE_LIMITED_COMPANY' \
  --header 'x-api-key: <partner_api_key>'
Use the returned DSL to render your intake UI and to understand required fields, participant roles, document requirements, and validation constraints. The requirements response is informational. Intake updates are always validated against the current server-side DSL, so clients should handle missingRequirements and invalidRequirements from intake responses.

How to use the DSL

DSL areaWhat it meansHow to satisfy it
blocksUI-friendly groupings of incorporation-level fieldsRender these groups in your intake UI if useful.
fieldsData submitted through POST /partner/incorporation/{incorporationId}/intakeSend values under requirements using each field key.
required.when / appliesWhenRules that make fields required or applicable only when another value is selectedRecompute visible/required fields when users change controlling values. Fields whose appliesWhen rule is not satisfied are ignored by validation.
participantRequirementsRequired participant roles such as director or shareholderRegister reusable Commenda OS resources with POST /partner/incorporation/{incorporationId}/participants.
documentRequirementsRequired typed documents for participant roles/typesRegister files, then link them with POST /partner/incorporation/{incorporationId}/documents.

Participant role/resource combinations

The requirements DSL describes participant requirements in terms of role, participant type, and resource type. For Singapore private limited companies:
Role requirementparticipantTyperesource.resourceTypeNotes
Individual directorindividualkeyPersonUse a Commenda OS person id. One person can also hold a shareholder role.
Individual shareholderindividualkeyPersonUse a Commenda OS person id and include ownershipPercentage.
Corporate shareholdercorporatebusinessEntityUse a Commenda OS business entity id and include ownershipPercentage.
Corporate directorcorporatebusinessEntityNot supported for Singapore private limited companies.
When documentRequirements are returned, match them by role, participantType, and resourceType. Individual Singapore directors and shareholders require passport_scan and utility_bill; corporate shareholder documents, if required by the selected case type, are surfaced by the same documentRequirements array. Validation paths in missingRequirements and invalidRequirements correspond to DSL fields or participant/document requirements. Field validation paths include the DSL block key, such as companyNames.companyNameOptions, even though the intake payload key remains requirements.companyNameOptions. Participant document paths look like participants.participant_123.documents.passport_scan. You may cache the requirements response by country plus countryOptions, but do not send a requirements version back to Commenda. If validation returns new missing or invalid requirements, update your UI from the latest response.

Authorizations

x-api-key
string
header
required

Query Parameters

country
enum<string>
required

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"

countryOptions
object
required

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

Requirements retrieved successfully

requirements
object
required

Requirements DSL for the selected incorporation. Clients can use this to render their own intake UI, but intake updates are always validated against the current server-side DSL.

Example:
{
"schemaVersion": "2026-04-22",
"dslVersion": "mvp-2026-04-22",
"key": "sg.private_limited_company",
"country": "SG",
"countryOptions": {
"corporationType": "PRIVATE_LIMITED_COMPANY"
},
"name": "Singapore Private Limited Company Incorporation Requirements",
"blocks": [
{
"key": "companyNames",
"name": "Company name options"
}
],
"participantRequirements": [
{
"key": "directors",
"name": "Directors",
"role": "director",
"allowedParticipantTypes": ["individual"],
"allowedResourceTypes": ["keyPerson"],
"documentRequirements": [
{
"documentKind": "passport_scan",
"name": "Passport scan"
},
{
"documentKind": "utility_bill",
"name": "Utility bill"
}
]
}
]
}