Mobile User

Profile

Read and update the authenticated mobile user profile.

Get Current Profile

GET /api/v1/mobile_user/profile

Returns the profile of the authenticated mobile user.

Required headers

HeaderRequiredNotes
Authorization: Bearer <access_token>YesAccess token from register or login.
Accept-LanguageOptionalLocalized response messages.

Success response

{
  "status_code": 200,
  "message": "Profile retrieved successfully",
  "data": {
    "uid": 120045,
    "uuid": "ea9b679c-6d42-4dcb-a10d-f46c0e0f8fb1",
    "phone": "012345678",
    "email": "user@example.com",
    "phone_code": "855",
    "country_code": "KH",
    "first_name": "Dara",
    "last_name": "Sok",
    "display_name": "Dara Sok",
    "full_name": "Dara Sok",
    "is_email_verified": true,
    "is_phone_verified": true,
    "is_kyc_verified": false,
    "is_pin_set": true,
    "status": "active",
    "top_up_rate": 1.5,
    "created_at": "2026-02-28T10:30:00Z",
    "updated_at": "2026-02-28T10:30:00Z"
  }
}

Update Current Profile

PUT /api/v1/mobile_user/profile

Updates editable profile fields for the authenticated mobile user.

This route uses DecryptField() middleware, so you can send plain JSON or the encrypted wrapper described in Overview.

Request

{
  "first_name": "Dara",
  "last_name": "Sok",
  "display_name": "Dara S.",
  "bio": "Mobile wallet user",
  "address": "Phnom Penh",
  "date_of_birth": "1998-01-10",
  "gender": "male",
  "profile_picture": "https://cdn.example.com/users/120045.png"
}

Editable fields

FieldNotes
first_nameMax 100 chars
last_nameMax 100 chars
display_nameMax 200 chars
bioMax 1000 chars
addressMax 500 chars
date_of_birthOptional string
genderOne of male, female, other, prefer_not_to_say
profile_pictureMax 500 chars

Success response

The API returns the updated profile in the same shape as GET /api/v1/mobile_user/profile.

Common Failures

  • 401: missing or invalid bearer token.
  • 404: mobile user not found.
  • 400: validation failure on one or more fields.
Copyright © 2026