Перейти к содержимому

Профиль и сессии

Методы /v1/me работают с аккаунтом владельца access-токена и требуют заголовок Authorization: Bearer <accessToken>. Особых доступов не нужно — они есть у любого вошедшего пользователя.

  1. Профиль. После входа запросите GET /v1/me — в ответе имя, телефон, способ входа и роли. По ним клиент решает, какие разделы показать.

  2. Изменения. PATCH /v1/me меняет имя, фамилию и способ входа, PUT /v1/me/password задаёт или меняет пароль.

  3. Сессии. GET /v1/me/sessions показывает устройства, где выполнен вход, DELETE /v1/me/sessions/{id} завершает сессию на одном из них.

GET/v1/me

Возвращает профиль, роли и доступы. Вызывайте после входа, чтобы решить, какие разделы показать.

Окно терминала
curl https://api.rekassa.uz/v1/me \
-H 'Authorization: Bearer <accessToken>'
{
"id": "0d3f5b8e-2c41-4a7e-9f10-6c8b2a7d4e11",
"phone": "+998901234567",
"firstName": "Азиз",
"lastName": "Каримов",
"authMethod": "password",
"status": "active",
"hasPassword": true,
"lastLoginAt": "2026-09-24T08:30:12.000Z",
"createdAt": "2026-09-01T10:00:00.000Z",
"roleAssignments": [
{
"id": "9a4c2e71-5f3b-4d08-b1e6-3c7a9d2f0e58",
"scope": { "type": "platform" },
"role": {
"id": "71b3e0d4-8a2c-4f95-a6e1-0c9d5b3f7a24",
"code": "account.user",
"name": "Пользователь",
"audience": "account",
"rank": 0,
"permissions": []
}
}
]
}
Поле Описание
phone номер в формате E.164
authMethod способ входа: password или sms
status pending — телефон не подтверждён, active, blocked
hasPassword задан ли пароль. Если false, войти можно только по SMS
lastLoginAt время последнего входа или null
roleAssignments назначенные роли; у каждой — область действия scope и роль с доступами

scope.type показывает, на что распространяются доступы роли, — от самого широкого уровня к самому узкому:

type Уровень Поля
platform вся платформа reKassa —
client клиент reKassa со всеми его организациями clientId
organization организация клиента — юрлицо или ИП со своим ИНН clientId, organizationId
branch филиал организации clientId, organizationId, branchId

Роль, назначенная на уровне, действует и на всех уровнях под ним: доступ на уровне клиента распространяется на все его организации и филиалы.

PATCH/v1/me

Все поля необязательные — передавайте только те, что меняются.

Поле Тип Описание
firstName string 1–100 символов
lastName string 1–100 символов
authMethod string password или sms
Окно терминала
curl -X PATCH https://api.rekassa.uz/v1/me \
-H 'Authorization: Bearer <accessToken>' \
-H 'Content-Type: application/json' \
-d '{"authMethod": "sms"}'

Ответ 200 — обновлённый профиль в том же виде, что у GET /v1/me.

Статус Код Когда
400 validation_failed пустое имя, неизвестный authMethod
422 password_required authMethod: "password", а пароль не задан (hasPassword: false)

Телефон в профиле не меняется.

PUT/v1/me/password

Задаёт пароль, если его не было, или меняет существующий.

Поле Тип Описание
currentPassword string текущий пароль; обязателен, если пароль уже задан
password string новый пароль, 8–128 символов
passwordConfirmation string должно совпадать с password
Окно терминала
curl -X PUT https://api.rekassa.uz/v1/me/password \
-H 'Authorization: Bearer <accessToken>' \
-H 'Content-Type: application/json' \
-d '{
"currentPassword": "correct-horse-42",
"password": "new-horse-battery-7",
"passwordConfirmation": "new-horse-battery-7"
}'

Ответ — 204 No Content. Все остальные сессии завершаются, текущая продолжает работать.

Статус Код Когда
400 validation_failed пароль короче 8 символов, пароли не совпадают
422 current_password_invalid текущий пароль не передан или неверен, а пароль уже задан

Сессия создаётся при каждом входе и живёт, пока её обновляют, — до 30 дней с последнего обновления токенов.

GET/v1/me/sessions

Возвращает массив (без пагинации), сначала сессии с самой свежей активностью.

[
{
"id": "3f1c2d9e-6b7a-4c55-9a51-0d8e7f6a1b2c",
"ip": "213.230.64.10",
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) ...",
"createdAt": "2026-09-20T07:12:40.000Z",
"lastUsedAt": "2026-09-24T08:30:12.000Z",
"expiresAt": "2026-10-24T08:30:12.000Z"
}
]
Поле Описание
id идентификатор сессии
ip IP последнего входа или обновления токенов, может быть null
userAgent User-Agent клиента, до 512 символов, может быть null
lastUsedAt время последнего обновления токенов
expiresAt когда сессия истечёт, если её не обновлять

Чтобы отметить текущую сессию в списке, сравните id с полем sid в полезной нагрузке access-токена (JWT). Мобильный клиент может взять его и из refresh-токена — это часть до точки.

DELETE/v1/me/sessions/{id}

Завершает одну из своих сессий — например, на потерянном телефоне. Ответ — 204 No Content.

Окно терминала
curl -X DELETE https://api.rekassa.uz/v1/me/sessions/3f1c2d9e-6b7a-4c55-9a51-0d8e7f6a1b2c \
-H 'Authorization: Bearer <accessToken>'
Статус Код Когда
400 validation_failed id не UUID
404 session_not_found сессии нет, она уже завершена или принадлежит другому пользователю