Attach a document
PUT
https://api.getstarted.ae/v1/incorporations/{incorporationId}/participants/{participantId}/documents/{documentKind}Fills one document slot on a participant with an uploaded file.
- Idempotent: putting the same
fileIdagain is a no-op, and putting a different one replaces the slot. - Upload the file first with
POST /files. One file can fill slots on several participants.
Path parameters
incorporationIdstringrequiredID of the incorporation, e.g.
inc_01J9ZK7C3VYB5N.participantIdstringrequiredID of the participant, e.g.
par_01J9ZKE7LB2H6J.documentKindenumrequiredThe slot from
documentRequirements, e.g.PASSPORT_SCAN,PROOF_OF_ADDRESS,CERTIFICATE_OF_INCORPORATION.
Body parameters
fileIdstringrequiredID of an uploaded file.
Responses
200OK. Returns the object shown in the example.404resource_not_foundNo participant or file with that ID exists in this environment.422document_kind_not_requiredNo role this participant holds requires that document kind.409incorporation_lockedThe incorporation has been submitted and the slot is not part of an open issue.- Every endpoint can also return
401for a missing or invalid key. See Errors.
curl -X PUT "https://api.getstarted.ae/v1/incorporations/inc_01J9ZK7C3VYB5N/participants/par_01J9ZKE7LB2H6J/documents/PASSPORT_SCAN" \
-H "Authorization: Bearer $GETSTARTED_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"fileId": "file_01J9ZKG1DV4K8N"
}'Response · 200
{
"id": "par_01J9ZKE7LB2H6J",
"object": "participant",
"incorporationId": "inc_01J9ZK7C3VYB5N",
"participantType": "INDIVIDUAL",
"resource": {
"resourceType": "PERSON",
"resourceId": "per_01J9ZKA1M4HD2T"
},
"roles": [
{
"role": "DIRECTOR"
},
{
"role": "SHAREHOLDER",
"ownershipPercentage": 100
}
],
"documents": [
{
"documentKind": "PASSPORT_SCAN",
"fileId": "file_01J9ZKG1DV4K8N",
"attachedAt": "2026-09-20T08:52:30Z"
}
],
"createdAt": "2026-09-20T08:45:18Z",
"updatedAt": "2026-09-20T08:52:30Z"
}