manageUser permission.identifier payload shape as POST /users/update.platform_user_id — Resolves the user by platform user ID.email — Resolves the user by email.username — Resolves the user by username within the community.custom_user_identifier — Resolves the user through the community’s active identifier.identifier — Required user lookup object:type: platform_user_id, username, email, or custom_user_identifiervalue: User identifier valuexp — Optional XP mutation.currency — Optional standard-currency mutation.xp or currency is required.action — add, subtract, or overwritevalue — A finite, non-negative numberoverwrite creates an adjustment baseline in the XP or currency history ledger. The API then recalculates and synchronizes the cached balance.200 USER_XP_CURRENCY_UPDATED — XP and/or currency updated successfully.400 ACTIVE_IDENTIFIER_NOT_CONFIGURED — A custom identifier was requested but the community has no active identifier configured.404 USER_NOT_FOUND — The selected identifier does not resolve a user.500 USER_XP_CURRENCY_UPDATE_FAILED — Unexpected lookup or persistence error.curl --location 'https://sgtr-integration.returning.ai/apis/v1/users/update-xp-currency' \
--header 'Content-Type: application/json' \
--data '{
"identifier": {
"type": "custom_user_identifier",
"value": "CUST-100042"
},
"xp": {
"action": "add",
"value": 25
},
"currency": {
"action": "overwrite",
"value": 500
}
}'{
"status": "success",
"code": "USER_XP_CURRENCY_UPDATED",
"message": "User XP and currency updated successfully",
"data": {
"userId": 42,
"xp": 125,
"currency": 500
}
}