SweetConnect LogoSweetConnect
ApiShare documents

Complete user profile for a share recipient

Activates a deactivated user account that was created as part of the document share registration flow.

This is a public endpoint — no authentication is required.

Flow context: When a document is shared with a recipient who does not yet have an account, a deactivated user account is created and the recipient receives a share link. Following that link, the recipient eventually calls this endpoint to supply their personal details and activate their account.

Preconditions:

  • The recipient identified by userId must exist as a deactivated share recipient with status WAITING_FOR_USER_REGISTRATION. If the recipient is in any other status (e.g. already registered or pending admin approval), a 422 is returned.

Side effects on success:

  1. The Keycloak user account is enabled and updated with the provided name and language.
  2. The share recipient's status transitions to WAITING_FOR_ADMIN_DECISION.
  3. An email notification is sent to the sender organisation's admins (or to the support address if no admin is configured) so they can approve the new user.

Access restricted to roles:

POST
/v1/shares/complete-profile/{userId}

Path Parameters

userId*string

UUID of the share recipient whose profile should be completed. This matches the deactivated Keycloak user ID.

Formatuuid

Request Body

application/json

Personal details and role selection for the new user

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://dev.sweetconnect.io/api/storage/v1/shares/complete-profile/a1b2c3d4-5678-90ab-cdef-1234567890ab" \  -H "Content-Type: application/json" \  -d '{    "firstname": "John",    "lastname": "Doe",    "language": "de"  }'
{
  "data": {
    "id": "0c1b9613-7d6f-40b7-bf29-3179ac401fc9",
    "email": "john.doe@example.com",
    "enabled": false
  }
}
{
  "errors": [
    {
      "errorCode": "BadRequest",
      "message": "The request payload is invalid.",
      "extension": {}
    }
  ]
}
{
  "errors": [
    {
      "errorCode": "NotFound",
      "message": "The requested resource was not found.",
      "extension": {}
    }
  ]
}
{
  "errors": [
    {
      "errorCode": "UnprocessableEntity",
      "message": "Operation not allowed for this entity type.",
      "extension": {
        "entityType": "Document"
      }
    }
  ]
}
{
  "errors": [
    {
      "errorCode": "InternalServerError",
      "message": "An unexpected error occurred. See logs for further details or create a support ticket.",
      "extension": {}
    }
  ]
}