Update the current user profile
Request body
Full name
Username: 3 - 100 chars; letters, digits, underscore, and dot only
Company name (business profiles)
Job title
Birthday
Phone number
Timezone
Whether the onboarding is completed
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.
Amount entry mode
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.
App-lock idle timeout in minutes; 0 disables it
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
User profile ID
Full name
Username
Profile type
Company name (business profiles)
Job title
Birthday
Phone number
Timezone
Avatar
User ID
Whether the onboarding is completed
Display currency, lower-case ISO 4217
Amount entry mode: fiat or token
UI language, as a resolved translation-bundle key. NULL means never chosen (DRE-447).
App-lock idle timeout in minutes; 0 disables it
Whether the app lock (PIN) is set up
Creation timestamp
Last update timestamp
Changes
No recorded changes to this endpoint across all 1 revision of this API.