Create a new user account with a device or email and password.
POST /api/v1/auth/sign-up
Register a new user. Supports two methods: mobile device registration (for wallet users) and email/password registration.
Parameters
Body
| Name | Type | Required | Description |
|---|---|---|---|
type | enum | Yes | mobile-device or email-password |
data | object | Yes | Registration data — shape depends on type |
type is mobile-device:
| Name | Type | Required | Description |
|---|---|---|---|
data.installationId | string | Yes | Device installation ID, 32–128 characters |
data.password | string | Yes | Device password, 32–256 characters |
data.platform | enum | Yes | ios or android |
data.challenge | string | Yes | Verification challenge, 48 characters |
data.assertionToken | string | Yes | Assertion token, 1–10,240 characters |
data.assertionKeyId | string | No | Optional key identifier, 32–64 characters |
type is email-password:
| Name | Type | Required | Description |
|---|---|---|---|
data.email | string | Yes | Email address, 3–128 characters |
data.password | string | Yes | Account password, 8–256 characters |
Request examples
Mobile device sign-up
Email sign-up
Response
Response schema
| Field | Type | Description |
|---|---|---|
id | string | Unique user identifier |
role | string | User role (USER, etc.) |
createdAt | string | ISO 8601 creation timestamp |
updatedAt | string | ISO 8601 last update timestamp |
Example response
Error responses
| Status | Code | Description |
|---|---|---|
400 | invalid_type | The type field is missing or unsupported |
400 | validation_failed | Required fields are missing or invalid |
409 | already_exists | A user with this installation ID or email already exists |
429 | rate_limit | Too many sign-up attempts |