Update user profile
curl --request PATCH \
--url https://api.example.com/api/v1/user/profileconst options = {method: 'PATCH'};
fetch('https://api.example.com/api/v1/user/profile', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.example.com/api/v1/user/profile"
response = requests.patch(url)
print(response.text)User profile
Update user profile
Update one or more fields of a user’s personal profile.
PATCH
/
api
/
v1
/
user
/
profile
Update user profile
curl --request PATCH \
--url https://api.example.com/api/v1/user/profileconst options = {method: 'PATCH'};
fetch('https://api.example.com/api/v1/user/profile', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.example.com/api/v1/user/profile"
response = requests.patch(url)
print(response.text)Requires
X-Api-Key and X-Api-Secret headers. Pass userId in the request body — no JWT required.Updating profile fields after KYC has been approved does not automatically re-trigger verification. If the user’s legal name, government ID, or address changes, contact Qash support to initiate a re-verification.
Request
PATCH /api/v1/user/profile
X-Api-Key: <your-api-key>
X-Api-Secret: <your-api-secret>
Content-Type: application/json
userId. See Create user profile for the full field list and their formats.
{
"userId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"gender": "male",
"stateProvince": "CDMX",
"postalCode": "06600",
"occupation": "engineer",
"annualSalary": "50000-100000",
"accountPurpose": "personal_savings",
"expectedMonthlyVolume": "5000-10000"
}
Response
200 OK — returns the updated profile object.{
"success": true,
"data": {
"profile": {
"id": "bfc7083b-75a2-11f1-86bf-42010a400007",
"userId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"firstName": "Juan",
"lastName": "García",
"gender": "male",
"stateProvince": "CDMX",
"postalCode": "06600",
"occupation": "engineer",
"updatedAt": "2026-06-15T10:00:00.000Z"
}
}
}
Errors
| HTTP status | Error | Cause |
|---|---|---|
400 | Validation message | Invalid field format |
400 | Missing userId in request body or query params | userId not included in the body |
401 | Invalid partner credentials | Wrong or missing X-Api-Key / X-Api-Secret |
403 | User does not belong to this partner | userId belongs to a different partner |
404 | PersonalProfile not found: <userId> | No profile exists yet — call POST /user/profile first |