Skip to main content
GET
/
partner
/
incorporation
/
{incorporationId}
Get an incorporation
curl --request GET \
  --url https://api.prod.commenda.io/api/v1/partner/incorporation/{incorporationId} \
  --header 'x-api-key: <api-key>'
{
  "incorporation": {
    "id": "0f9a8f5e-7f7c-4c1b-a60a-b1022f9d8c91",
    "incorporationId": "0f9a8f5e-7f7c-4c1b-a60a-b1022f9d8c91",
    "companyId": 77,
    "country": "SG",
    "countryOptions": {
      "corporationType": "PRIVATE_LIMITED_COMPANY"
    },
    "incorporationStatus": "awaiting_customer_input",
    "createdAt": "2026-04-21T17:10:00.000Z",
    "updatedAt": "2026-04-21T17:10:00.000Z",
    "corporationId": 44
  },
  "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"
          }
        ]
      }
    ]
  },
  "intakeState": {
    "id": "state_123",
    "incorporationId": "0f9a8f5e-7f7c-4c1b-a60a-b1022f9d8c91",
    "currentState": {
      "companyNameOptions": [
        {
          "name": "Acme SG Pte Ltd"
        },
        {
          "name": "Acme Asia Pte Ltd"
        },
        {
          "name": "Acme Global Pte Ltd"
        }
      ],
      "registeredAddressMode": "standardAddress"
    },
    "validation": {
      "isComplete": false,
      "missingRequirements": [
        {
          "path": "participants.participant_123.documents.passport_scan",
          "message": "Participant participant_123 requires a passport_scan document"
        }
      ],
      "invalidRequirements": [
        {
          "path": "participants.participant_123.documents.passport_scan",
          "message": "Participant participant_123 requires a passport_scan document"
        }
      ]
    },
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z"
  },
  "participants": [
    {
      "participantId": "participant_123",
      "participantType": "individual",
      "resource": {
        "resourceType": "keyPerson",
        "resourceId": "12"
      },
      "roles": [
        {
          "role": "director"
        },
        {
          "role": "shareholder",
          "ownershipPercentage": 100
        }
      ],
      "documents": [
        {
          "documentId": "document_123",
          "participantId": "participant_123",
          "documentKind": "passport_scan",
          "fileId": 456,
          "status": "submitted"
        },
        {
          "documentId": "document_124",
          "participantId": "participant_123",
          "documentKind": "utility_bill",
          "fileId": 789,
          "status": "submitted"
        }
      ]
    }
  ]
}
Retrieves a single incorporation accessible to your partner account. Use this endpoint to refresh the latest intakeState, participants, and top-level incorporationStatus for an ongoing incorporation. intakeState.validation.isComplete tells you whether the current state is eligible to submit. submitted or in_progress is returned only after POST /partner/incorporation/{incorporationId}/submit succeeds for a currently complete incorporation. Use Get incorporation status for stage-level progress and blocking issue ids. Use List incorporation issues to track active or resolved correction requests.

Incorporation status

incorporationStatus can be one of:
StatusMeaning
awaiting_customer_inputRequired intake information, participant roles, or documents are still missing or invalid, or the current state is complete but has not been submitted for review.
submittedThe incorporation was explicitly submitted and currently validates against the requirements DSL, but workflow work has not started yet.
in_progressCommenda is actively processing the incorporation through the dedicated workflow.
blockedThe incorporation has active partner-visible issues or workflow start/runtime failures.
completedThe incorporation has been completed.

Authorizations

x-api-key
string
header
required

Path Parameters

incorporationId
string
required

Incorporation identifier returned by create or list endpoints.

Response

Incorporation retrieved successfully

incorporation
object
required
requirements
object

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"
}
]
}
]
}
intakeState
object
participants
object[]

Participants registered to this incorporation, when requested or available.