Skip to content

Register User

POST /wallethero-api/register

Create a new user account. Optionally accepts an invitation token to join an existing workspace; otherwise a default workspace is created for the new user.

Auth: Public (no token required — pre-auth flow).

Registration lockdown: unless the directus-api environment sets OPEN_REGISTRATION_ENABLED=true, registration without an invitation_token is rejected with 403 { "error": "registration_disabled" }. Invited registrations always work. See System Admin for the full lockdown matrix and the admin-driven onboarding flow.

Request Body

FieldTypeRequiredDescription
emailstring (email)YesUser's email address (must be a valid email)
passwordstringYesPassword, minimum 8 characters
first_namestringYesUser's first name (min 1 character)
last_namestringYesUser's last name (min 1 character)
invitation_tokenstring (UUID)NoInvitation token. When provided, the user is auto-verified and added to the inviting workspace (skips email verification). Must match the invitation email.

Example Request

bash
curl -X POST "https://api.wallethero.app/wallethero-api/register" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "[email protected]",
    "password": "securePassword123",
    "first_name": "John",
    "last_name": "Doe"
  }'

Response (200)

Standard registration (no invitation token). Email verification is required:

json
{
  "message": "User registered successfully. Please check your email to verify your account.",
  "requires_verification": true,
  "user": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "email": "[email protected]",
    "first_name": "John",
    "last_name": "Doe",
    "email_verified": false
  }
}

With a valid invitation_token, the user is verified immediately and added to the workspace:

json
{
  "message": "User registered and verified successfully",
  "requires_verification": false,
  "user": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "email": "[email protected]",
    "first_name": "John",
    "last_name": "Doe",
    "email_verified": true
  }
}

Response Fields

FieldTypeDescription
messagestringHuman-readable result message
requires_verificationbooleantrue for standard sign-ups, false for invited users
user.idstring (UUID)New user identifier
user.emailstringUser's email address
user.first_namestringUser's first name
user.last_namestringUser's last name
user.email_verifiedbooleanWhether the email is already verified

Errors

StatusCodeDescription
400INVALID_PAYLOADMissing/invalid fields, email already exists, invalid/expired invitation, or invitation email mismatch

Notes

  • A verification email is sent automatically for standard sign-ups; invited users receive a welcome email instead.
  • For standard sign-ups, a default workspace named "<first_name>'s Workspace" is created and the user becomes its admin.
  • The admin role is only assigned after the user verifies their email (or immediately for invited users).

SDK

No SDK method — call the REST endpoint directly.

WalletHero Documentation