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 aninvitation_tokenis rejected with403 { "error": "registration_disabled" }. Invited registrations always work. See System Admin for the full lockdown matrix and the admin-driven onboarding flow.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
email | string (email) | Yes | User's email address (must be a valid email) |
password | string | Yes | Password, minimum 8 characters |
first_name | string | Yes | User's first name (min 1 character) |
last_name | string | Yes | User's last name (min 1 character) |
invitation_token | string (UUID) | No | Invitation token. When provided, the user is auto-verified and added to the inviting workspace (skips email verification). Must match the invitation email. |
Example Request
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:
{
"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:
{
"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
| Field | Type | Description |
|---|---|---|
message | string | Human-readable result message |
requires_verification | boolean | true for standard sign-ups, false for invited users |
user.id | string (UUID) | New user identifier |
user.email | string | User's email address |
user.first_name | string | User's first name |
user.last_name | string | User's last name |
user.email_verified | boolean | Whether the email is already verified |
Errors
| Status | Code | Description |
|---|---|---|
| 400 | INVALID_PAYLOAD | Missing/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.