Skip to main content
POST
Updates profile, contact, share, shareholder, and social details for a claimed company. The request is multipart/form-data so shareholder ID documents can be attached in the same call. Most fields are sent as flat form fields; shareHolderDetails, registrarInfo, and socials are JSON-encoded.

Path

string
required
The company must be owned by the caller.

Form fields

All fields are optional. Send each as a separate multipart/form-data part.
string
string
string
string
string
string
string
string
string
string
string
string
string
string
string | number
string | number
string
string
string | boolean
string | boolean
string | boolean
boolean
boolean
When true, the response echoes the updated shareHolderDetails array instead of the trimmed company object.
object
JSON-encoded. Keys: website, facebook, instagram, linkedin, twitter, tiktok (each a URL). A reachable website flips website_verified to true.
string | object
JSON-encoded. Keys: surname, firstname, email, nationality, date_of_birth.
string | array
JSON-encoded array. Each shareholder may include name, email, address, dateOfBirth, nationality, idType, roleInCompany, percentageOfOwner, noOfShares, identificationNumber, phoneNumber, identificationDocumentUrl. Supplying this array sets shareHolderVerified to true.
file[]
Up to 10 PDFs, ≤ 50 MB each. Files are matched to shareholders by position — the first file applies to the first entry in shareHolderDetails, the second to the second, and so on. Each uploaded document is verified against the shareholder’s name, identificationNumber, and idType before it is stored; a shareholder with no matching file keeps its existing document. Extra files beyond the shareholder count are ignored.
If no owned company matches companyId, the endpoint returns 404 with { "message": "Company not found" }. Invalid shareholder JSON returns 400 with { "message": "Invalid JSON data provided" }.