Creates a Stakeholder record. One Stakeholder per (subjectType, subjectId, accountId) triple — duplicates return 409 ResourceConflict. For Account-typed members, roleId, roleIds and scopes must be null (Account-to-Account access flows through parentAccountId hierarchy and Organization policy controls). An Active Person without acceptance returns 409 with users.StakeholderAcceptanceRequired; create the teammate entry by email, invite it, and ask the Person to accept from their own session.
If externalId is supplied and already used by another resource of this type for the owning Account, the request returns 409 ResourceConflict; create is not an upsert. Use filter[externalId][eq] on the list endpoint to retrieve the existing resource.
isPrincipal=true, unresolved natural-human Stakeholders (subjectId omitted), email-only Stakeholders, and subject-bearing accountSuppliedComplianceEntityId attachment are backed by the users service. Because Stakeholder ids are normally server-assigned, external clients usually create the Stakeholder first, create the subject ComplianceEntity with the returned id, then PATCH this field.
A ServiceAccount key, or an Account session it minted, can create and edit natural-person Stakeholders with no subjectId (principal or not) and Account-subject owner Stakeholders. Rows it creates have no roles unless it sets roleIds or scopes, and it can set only roles and scopes it holds on the Account. Giving a natural-person row the Admin role, and inviting a human to a principal row, need users.stakeholder-admin:write. A ServiceAccount cannot link a Person, or change email or accountSuppliedComplianceEntityId on a row linked to a Person (403 with users.ServiceAccountPersonLinkForbidden). Marking a row principal on an Account that already has a principal returns 409 ResourceConflict.
To set up a no-login individual, a ServiceAccount with users.authorization:write and platform.compliance-entity:write (reading the records back needs the matching :read scopes) creates a principal row with no subjectId, then creates an Individual ComplianceEntity with subject: {type: Stakeholder, id: <stakeholderId>} and PATCHes this Stakeholder's accountSuppliedComplianceEntityId to it. The three calls are not atomic; after a partial failure, find the principal with filter[isPrincipal][eq]=true and the identity with filter[subjectType][eq]=Stakeholder and filter[subjectId][eq]=<stakeholderId>, then resume.
Requires a session with recent MFA step-up for StakeholderChange. If step-up is missing or expired, this operation returns 403 StepUpMfaRequired; create and verify an MFA challenge at /v3/platform/mfa-challenges with requiredFor: "StakeholderChange", then retry.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||