user-profile

Update the current user profile

patch/users/me/profile

Request body

namestring

Full name

usernameobject

Username: 3 - 100 chars; letters, digits, underscore, and dot only

companyNameobject

Company name (business profiles)

jobTitleobject

Job title

birthdayobject

Birthday

phoneobject

Phone number

timezoneobject

Timezone

onboardingCompletedboolean

Whether the onboarding is completed

currencystring

Display currency, lower-case ISO 4217. Shape-checked only: the valid set is whatever GET /currency/rates publishes, and a code it stops publishing falls back to USD at format time rather than 400ing here.

inputMode'fiat' | 'token'

Amount entry mode

languageobject

UI language, as a resolved translation-bundle key — not a raw device locale. navigator.language returns values like en-US and zh-Hans-CN; resolve those to a language you ship before sending, because an unresolved locale is rejected rather than truncated. Two lower-case letters (de); canonical case is required, so EN is rejected. The code is not checked against a fixed set, and one that matches no bundle renders English. Send null to clear the choice; a client that caches the value per user must drop that cache in the same action, or its next reconcile reads NULL and republishes the old value.

sessionTimeout0 | 5 | 15 | 30 | 60

App-lock idle timeout in minutes; 0 disables it

appLockEnabledboolean

Accepted and ignored since DRE-441. The app lock is server-owned: a client that could set this to false would disable the lock with a profile PATCH, which is the bypass server-side verification exists to close. Use POST /auth/app-lock and POST /auth/app-lock/remove.

Still accepted rather than rejected because forbidNonWhitelisted would 400 the entire profile update for a tab holding older JS. The field is removed in a follow-up.

Example request

{
  "name": "Jane Doe",
  "onboardingCompleted": true,
  "currency": "eur",
  "inputMode": "fiat",
  "sessionTimeout": 15,
  "appLockEnabled": true
}

Response

User profile updated

idnumber required

User profile ID

namestring required

Full name

usernameobject nullable required

Username

type1 | 2 required

Profile type

companyNameobject nullable required

Company name (business profiles)

jobTitleobject nullable required

Job title

birthdayobject nullable required

Birthday

phoneobject nullable required

Phone number

timezoneobject nullable required

Timezone

avatarobject nullable required

Avatar

userIdnumber required

User ID

onboardingCompletedboolean required

Whether the onboarding is completed

currencyobject nullable required

Display currency, lower-case ISO 4217

inputModeobject nullable required

Amount entry mode: fiat or token

languageobject nullable required

UI language, as a resolved translation-bundle key. NULL means never chosen (DRE-447).

sessionTimeoutobject nullable required

App-lock idle timeout in minutes; 0 disables it

appLockEnabledboolean required

Whether the app lock (PIN) is set up

created_atstring date-time required

Creation timestamp

updated_atstring date-time required

Last update timestamp

Changes

No recorded changes to this endpoint across all 1 revision of this API.