OUTCOME · Join
What changes
Consumes the invitation and creates the invited role membership. It does not automatically select the workspace, create a wallet, or grant authority beyond that role.
Workspace Management
/api/v2/workspace-invitations/acceptancePurpose and usage
Convert a valid workspace invitation into an active membership for the authenticated recipient.
When to use it
Call this after the signed-in user receives a one-time invitation token and chooses to join the named workspace.
OUTCOME · Join
Consumes the invitation and creates the invited role membership. It does not automatically select the workspace, create a wallet, or grant authority beyond that role.
WHY IT MATTERS
ISOLATION + AUTHORITY
Acceptance is recipient-bound and workspace-bound. It cannot select another role, join another workspace, or confer wallet/MPC authority outside later policy ceremonies.
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:
tokenbodyRequiredone-time opaque invitation tokenToken delivered to the invited email address.
REQUEST
{
"token": "hcwi_…"
}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
{
"workspace_id": "b00dc220da8f480d86cdc11341372746",
"tenant_uuid": "b00dc220da8f480d86cdc11341372746",
"name": "Treasury Operations",
"purpose": "TREASURY",
"isolation_policy": "MPC",
"status": "ACTIVE",
"version": 1,
"created_by": "d2f46f7e234c40a4a54e54208368d8d5",
"created_at": "2026-08-12T21:00:00Z",
"updated_at": "2026-08-12T21:00:00Z",
"membership_id": "7bb755ad325c48e5a4f4cc7f5711fa62",
"role": "ADMIN",
"membership_version": 1,
"idempotent_replay": false,
"preference_version": null
}{
"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/accept/XXXXXXXWORKSPACE: Accept Workspace InvitationThis 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