Overview
The Partner Incorporation API lets a partner start and track incorporations for companies they manage in Commenda.If you are implementing the flow for the first time, start with Build an incorporation flow. It includes the recommended sequence, ID handoffs, validation behavior, and a Singapore happy path.
x-api-key header on every request.
Flow
- Create a company with the existing
POST /public/companyendpoint. - Review the informational jurisdiction catalog with
GET /partner/incorporation/jurisdiction-catalog. - Fetch the current requirements DSL with
GET /partner/incorporation/requirementsand the progress stages withGET /partner/incorporation/status-workflowfor the selectedcountryandcountryOptions. - Start an incorporation with
POST /partner/incorporation/companies/{companyId}/incorporations. - Create or reference reusable people, business entities, and addresses through the Commenda OS Partner API. If an individual director or shareholder does not exist yet, create one with
POST /partner/commenda-os/companies/{companyId}/persons. - Register people or business entities as incorporation participants with
POST /partner/incorporation/{incorporationId}/participants. - If needed, correct existing participant roles or ownership percentages with
PATCH /partner/incorporation/{incorporationId}/participants/{participantId}. - Follow Upload documents for incorporation: upload files directly to S3, then create company documents through Commenda OS to obtain
fileId. - Register company files with
POST /partner/incorporation/{incorporationId}/files. - Link registered files as participant documents with
POST /partner/incorporation/{incorporationId}/documents. - Update partial or complete non-participant intake data with
POST /partner/incorporation/{incorporationId}/intake. - Submit a complete incorporation for Commenda review with
POST /partner/incorporation/{incorporationId}/submit. - Read the incorporation to track
intakeState, participants, and missing requirements. - Read
GET /partner/incorporation/{incorporationId}/statusto track top-level status, blocking issues, and ordered stage progress. - Read
GET /partner/incorporation/{incorporationId}/issuesto see active or resolved issues that require partner/customer action. - Optionally subscribe to
incorporation.issue.createdandincorporation.issue.resolvedwebhooks with/partner/webhook-subscriptions.
blocked and are listed in the status response as blocking issue ids.
End-to-end Singapore example
This example assumes you already created a company and have acompanyId. It starts a Singapore private limited company incorporation, registers one individual as both director and shareholder, uploads and links documents for that participant, sends the remaining intake data, submits the incorporation for review, and reads back progress.
incorporation.id in later calls.
Register the individual as a reusable incorporation participant. The resourceId should be the numeric Commenda OS key person id encoded as a string, and the person must be visible to this company.
participant.participantId when linking documents.
Create signed upload URLs for the participant’s passport scan and utility bill, then upload the file bytes directly to the returned upload.signedUrl values.
The upload URL and company-document endpoints are documented under Commenda OS Partner API because they create reusable company files. The incorporation-specific flow is summarized in Upload documents for incorporation.
PUT to its temporary upload.signedUrl. Then create company document records from the returned upload.hostedUrl values. Save each returned file.fileId.
intakeState.validation. When isComplete is true, the incorporation is eligible to submit for Commenda review.
Submit the complete incorporation for Commenda review:
incorporationStatus: "in_progress" once that workflow starts; if the workflow has not started yet, the status is submitted.
Jurisdiction options
Create requests use acountry plus country-specific countryOptions instead of a flat product id.
Participants and documents
Participants are incorporation-specific registrations of reusable Commenda OS people or business entities. Assign roles such asdirector and shareholder on the participant so the same person can be both a director and shareholder without being duplicated.
Documents are typed files attached to participants. Files remain the low-level storage object; documents are the incorporation requirement being satisfied. The current requirements DSL determines which document kinds are required for each participant role and resource type.
Two-stage intake
The requirements endpoint returns a DSL with field names, descriptions, validation rules, participant rules, document rules, and other incorporation requirements. Use it to power your own UI, but treat it as informational: Commenda validates every intake update against the current server-side requirements. Intake updates may be partial. Each update is merged into the current intake state and returnsintakeState.validation.isComplete: false plus missingRequirements and invalidRequirements until the state is complete. Participant and document requirements are evaluated from registered participants and linked documents. Once the current incorporation state satisfies the DSL, call POST /partner/incorporation/{incorporationId}/submit to hand the incorporation to Commenda and start the dedicated workflow.
Country-specific validation rules, such as ownership totals, address requirements, and required participant documents, are determined by the current requirements DSL for the selected incorporation.