shareHolderVerified flag.
This flow is handled by company management, not the verification endpoints. The path parameter is companyId.
Add a shareholder — POST /v1/company/{companyId}/shareholder
name and email are required. To attach an ID document, include the file in the identificationDocument field along with name, identificationNumber, and idType (all three are required when a document is present). The request is multipart/form-data.
With an ID document
Response
Update a shareholder — PUT /v1/company/{companyId}/shareholder/{shareholderId}
Send the fields to change. A replacement ID document can be supplied in the identificationDocument field. The request is multipart/form-data.
Remove a shareholder — DELETE /v1/company/{companyId}/shareholder
Identify the shareholder with either shareholderId or email in the request body. Removing the last shareholder clears the company’s shareholder-verified flag.
Response
Field rules
nameandemailare always required; a duplicate email on the same company is rejected.- When an ID document is attached,
name,identificationNumber, andidTypemust all be present. - A person recorded as a director must hold a non-zero number of shares, otherwise the entry is rejected.
Errors
| Status | Body | When |
|---|---|---|
400 | { "success": false, "error": "Missing required fields", "message": "Name and email are required", ... } | name or email omitted. |
400 | { "success": false, "error": "Duplicate email", "message": "A shareholder with email ... already exists", ... } | The email is already on the company. |
400 | { "message": "Either shareholderId or email must be provided" } | Remove called with no identifier. |
404 | { "success": false, "error": "Company not found", ... } / { "message": "Company not found" } | The company is missing or not yours. |
404 | { "message": "Shareholder not found with email: ..." } | No matching shareholder to remove. |
