Profile Management
This guide explains how to manage customer profiles in the Sumaya369 application.
Get Profile
Endpoint
- Method: GET
- URL:
/v1/customer/profile
Request Headers
| Header | Value | Required |
|---|---|---|
| Content-Type | application/json | Yes |
| Accept | application/json | Yes |
| Authorization | Bearer token | Yes |
Success Response
{
"success": true,
"message": "تم جلب البيانات بنجاح.",
"data": {
"user": {
"id": "0a79add0-f3ae-11ef-bee7-8bfdde00797d",
"username": "testing_1",
"first_name": null,
"last_name": null,
"full_name": "Ahmed Mohammad",
"email": "testing@gmail.com",
"birth": null,
"phone": "966555545539",
"phone_code": "+966",
"gender": null,
"avatar": "https://i.ibb.co/YhTw0wR/7-512.png",
"role": "customer",
"country_id": "18e1ceab-f28a-4fcc-929f-526b8f6e1557",
"country_name": "السعودية",
"created_at": "2025-02-25 22:23:49",
"updated_at": "2025-02-25 22:41:20",
"has_completed_profile": true,
"cart_count": 0,
"level_name": "نقاطي",
"level_icon": "https://sumaya369-testing-media.s3.us-east-2.amazonaws.com/4090/0--%D8%A7%D9%84%D9%86%D9%82%D8%A7%D8%B7---%D8%B9%D8%A7%D9%85-%D9%84%D9%84%D8%AC%D9%85%D9%8A%D8%B9-%D9%82%D8%A8%D9%84-%D8%A7%D9%84%D8%AF%D8%AE%D9%88%D9%84-%D9%84%D8%A3%D9%8A-%D9%85%D8%B3%D8%AA%D9%88%D9%89.png",
"permissions": null,
"groups_application_request": "unknown",
"groups_application_request_id": "unknown",
"gar_information": "unknown",
"is_alert_closed": false,
"social_media": {
"facebook": {
"username": null,
"status": null
},
"tiktok": {
"username": null,
"status": null
},
"instagram": {
"username": null,
"status": null
},
"twitter": {
"username": null,
"status": null
}
}
}
},
"status_code": 200
}
Update Profile
Endpoint
- Method: POST
- URL:
/v1/customer/profile
Request Headers
| Header | Value | Required |
|---|---|---|
| Content-Type | multipart/form-data | Yes |
| Accept | application/json | Yes |
| Authorization | Bearer token | Yes |
Request Body
| Parameter | Type | Description | Required |
|---|---|---|---|
| username | string | Unique username (3-255 characters) | No |
| full_name | string | Full name (3-255 characters) | No |
| string | Valid unique email address | No | |
| phone | string | Valid unique phone number (7-15 digits) | No |
| birth | string | Birth date (Y-m-d format) | No |
| old_password | string | Current password (min 6 characters) | No |
| new_password | string | New password (min 6 characters) | Required with old_password |
| new_password_confirmation | string | Confirm new password | Required with new_password |
| avatar | file | Profile image (jpeg,png,jpg, max 1MB) | No |
| gender | string | Gender (FEMALE or MALE) | No |
| country_id | integer | Valid country ID | No |
| social_media[facebook] | string | Facebook username | No |
| social_media[twitter] | string | Twitter username | No |
| social_media[instagram] | string | Instagram username | No |
| social_media[tiktok] | string | TikTok username | No |
Success Response
{
"success": true,
"message": "تم تحديث البيانات بنجاح.",
"data": {
"id": "0a79add0-f3ae-11ef-bee7-8bfdde00797d",
"username": "testing_1",
"first_name": null,
"last_name": null,
"full_name": "Ahmed Mohammad",
"email": "testing@gmail.com",
"birth": "1993-12-31",
"phone": "966555545539",
"phone_code": "+966",
"gender": "ذكر",
"avatar": "https://i.ibb.co/g4BR50S/avatar.png",
"role": "customer",
"country_id": "18e1ceab-f28a-4fcc-929f-526b8f6e1557",
"country_name": "السعودية",
"created_at": "2025-02-25 22:23:49",
"updated_at": "2025-02-26 04:26:36",
"has_completed_profile": true,
"cart_count": 0,
"level_name": "نقاطي",
"level_icon": "https://sumaya369-testing-media.s3.us-east-2.amazonaws.com/4090/0--%D8%A7%D9%84%D9%86%D9%82%D8%A7%D8%B7---%D8%B9%D8%A7%D9%85-%D9%84%D9%84%D8%AC%D9%85%D9%8A%D8%B9-%D9%82%D8%A8%D9%84-%D8%A7%D9%84%D8%AF%D8%AE%D9%88%D9%84-%D9%84%D8%A3%D9%8A-%D9%85%D8%B3%D8%AA%D9%88%D9%89.png",
"permissions": null,
"groups_application_request": "unknown",
"groups_application_request_id": "unknown",
"gar_information": null,
"is_alert_closed": false,
"social_media": {
"facebook": {
"username": null,
"status": null
},
"tiktok": {
"username": null,
"status": null
},
"instagram": {
"username": null,
"status": null
},
"twitter": {
"username": null,
"status": null
}
}
},
"status_code": 200
}
Error Responses
Invalid Old Password (422)
{
"success": false,
"message": "كلمة السر الحالية لا تطابق كلمة سر المستخدم",
"errors": "كلمة السر الحالية لا تطابق كلمة سر المستخدم",
"data": null,
"status_code": 422
}
Implementation Notes
- The profile update endpoint supports partial updates
- Password update requires both old and new password
- Social media usernames must be unique across all users
- Country ID cannot be updated for users from Saudi Arabia
- Avatar file size is limited to 1MB
- Phone numbers must be unique and valid
- Email addresses must be unique and properly formatted