OUTCOME · Invite
What changes
Creates a one-time, expiring invitation and queues controlled delivery. It does not create a membership until the recipient accepts it.
Workspace Management
/api/v2/workspaces/{workspace_id}/invitationsPurpose and usage
Invite a person into one workspace with a bounded initial role.
When to use it
Call this when a collaborator needs access to the workspace but does not yet have an active membership.
OUTCOME · Invite
Creates a one-time, expiring invitation and queues controlled delivery. It does not create a membership until the recipient accepts it.
WHY IT MATTERS
ISOLATION + AUTHORITY
The token is hashed at rest and encrypted in the delivery outbox. OWNER cannot be granted through invitation, and acceptance remains bound to the invited email account.
BEFORE YOU CALL
WHAT TO DO NEXT
AGENT GUIDANCE
Use the deployed OpenAPI for exact parameters, schemas and security requirements. The tables below provide integration guidance.
Open this operation in OpenAPIRequest and response
Examples illustrate integration intent; the referenced OpenAPI operation and component schemas define the executable shape.
PARAMETERS
AuthorizationheaderRequiredBearer tokenCredential containing the workspaces:write scope.EXAMPLEBearer hc_live_…
Idempotency-KeyheaderRequiredASCII string · 1–128Caller-generated key reused for every retry of the same logical mutation.EXAMPLElaunch-treasury-v1-001
Content-TypeheaderRequiredapplication/jsonSigned mutations accept canonical JSON only.EXAMPLEapplication/json
Content-DigestheaderRequiredRFC 9530 SHA-256 digestDigest of the exact transmitted body bytes.EXAMPLEsha-256=:47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU=:
Signature-InputheaderRequiredRFC 9421 signature parametersCovers @method, @path, content-digest, content-type, and idempotency-key; includes keyid, nonce, created, and expires.EXAMPLEsig1=("@method" "@path" "content-digest" "content-type" "idempotency-key");created=1786582800;expires=1786583100;nonce="01J…";keyid="machine-prod"
SignatureheaderRequiredEd25519 HTTP Message SignatureSignature made by an active public key registered to the authenticated client.EXAMPLEsig1=:base64-signature:
workspace_idpathRequired32-character workspace identifierAccessible workspace owned by Identity.EXAMPLEb00dc220da8f480d86cdc11341372746
emailbodyRequiredemail address · max 254Invitation recipient.
rolebodyOptionalADMIN | MEMBER | AUDITORGranted role; defaults to MEMBER. OWNER is forbidden.
REQUEST
{
"email": "[email protected]",
"role": "ADMIN"
}STABLE ERROR CODES
These codes are published by the authoritative gateway contract for this endpoint. Treat message as safe diagnostic text; integrations should branch on code and HTTP status.
invalid_jsonThe JSON body is malformed or fails the published identity schema.invalid_security_requestThe identity, workspace, permission, or key request is invalid.missing_idempotency_keyA nonempty Idempotency-Key is required for this mutation.invalid_credentialsThe bearer or proof-of-possession credential is invalid.step_up_requiredThe caller lacks role authority or fresh purpose-bound approval.workspace_resource_not_foundThe requested workspace, membership, or invitation was not found.security_conflictThe requested permission or identity transition conflicts with current state.identity_security_unavailableThe authoritative Identity security service is temporarily unavailable.RESPONSES
{
"invitation_id": "9e13c3dce7304f929239d4a438c66a20",
"workspace_id": "b00dc220da8f480d86cdc11341372746",
"role": "ADMIN",
"status": "PENDING",
"delivery": "QUEUED",
"expires_at": "2026-08-19T21:00:00Z",
"idempotent_replay": false
}{
"code": "invalid_json",
"message": "The JSON body or required signed headers are malformed."
}invalid_json{
"code": "invalid_credentials",
"message": "The bearer credential or HTTP Message Signature is missing, expired, replayed, or invalid."
}invalid_credentials{
"code": "workspace_forbidden",
"message": "The principal lacks the required scope, workspace role, or tenant authority."
}workspace_forbidden{
"code": "workspace_not_found",
"message": "The workspace, invitation, or membership was not found in the caller's authority boundary."
}workspace_not_found{
"code": "workspace_conflict",
"message": "The idempotency body, invitation state, or optimistic membership version conflicts with current state."
}workspace_conflict{
"code": "identity_security_unavailable",
"message": "The authoritative Identity workspace service is unavailable."
}identity_security_unavailableOPERATIONAL NOTES
UPGRADING FROM V1
If you maintain an older integration, use this map to find the V2 replacement. Do not translate the old request field-for-field: rebuild it from the V2 parameters and schemas above because identity, authorization, replay protection, and response semantics may have changed.
/api/v1/workspaces/inviteWORKSPACE: Invite User to WorkspaceThis route is implemented in canonical gateway source and appears in the production OpenAPI snapshot observed 2026-10-02T23:27:55.510Z. Authentication, tenant, feature, venue, and market policy still apply.
Verify the exact production OpenAPI operation Return to the V2 directory