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

Приглашения

Создание инвайта​

Метод API создаёт приглашение пользователя в организацию по email с назначением ролей при вступлении.

Требует доступы: org.invitations.create.

Запрос​

Метод: POST URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/invitations

Path Parameters​

ПараметрТипОбязательное полеОписаниеПример
organisationIdstring (uuid)ДаID организации550e8400-e29b-41d4-a716-446655440000

Заголовки​

ЗаголовокТипОбязательное полеОписание
x-idempotency-keystringНетКлюч идемпотентности для безопасного повтора запроса

Request Body​

ПолеТипОбязательное полеОписание
inviteeEmailstring (email)ДаEmail приглашаемого пользователя
roleIdsarray[string]ДаМассив UUID ролей, которые будут назначены при вступлении
metadataobjectНетПроизвольные метаданные

Пример запроса​

curl -X 'POST' \
"https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/invitations" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
-d '{
"inviteeEmail": "user@example.com",
"roleIds": ["019d06af-5e5d-7a42-91b7-0a7dd66aa9f4"],
"metadata": {
"source": "integration"
}
}'

Пример успешного ответа​

{
"requestId": "97c5678a-8c6a-4688-8452-68ab606fe049",
"result": {
"invitation": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"organisationId": "123e4567-e89b-12d3-a456-426614174000",
"inviteeEmail": "user@example.com",
"status": "PENDING",
"roles": [
{
"id": "019d06af-5e5d-7313-b8ba-df1640767435",
"code": "OWNER",
"name": "Владелец",
"description": "Владелец организации. Полный доступ."
}
],
"metadata": {
"source": "integration"
},
"createdAt": "2025-10-15T10:30:00Z",
"expiresAt": "2025-10-22T10:30:00Z",
"acceptedAt": null,
"acceptedUserId": null,
"revokedAt": null,
"revocationReason": null,
"declinedAt": null,
"declineReason": null
},
"token": "ivt_abc123def456..."
},
"success": true
}

Описание полей ответа​

ПолеТипОписание
requestIdstringУникальный идентификатор запроса
successbooleanСтатус выполнения запроса (true/false)
resultobjectКонтейнер с данными ответа
invitationobjectИнформация о приглашении
idstring (uuid)Идентификатор приглашения
organisationIdstring (uuid)Идентификатор организации
inviteeEmailstringEmail приглашённого
statusstringСтатус приглашения (PENDING, ACCEPTED, DECLINED, REVOKED, EXPIRED)
rolesarray[obj]Роли, которые будут назначены при вступлении
roles[].idstring (uuid)UUID роли
roles[].codestringТехническое название роли
roles[].namestringЧеловекочитаемое название роли
roles[].descriptionstringОписание роли
metadataobjectПроизвольные метаданные
createdAtstringДата и время создания
expiresAtstringДата и время истечения
acceptedAtstringДата и время принятия
acceptedUserIdstring (uuid)Идентификатор пользователя, принявшего приглашение
revokedAtstringДата и время отзыва приглашения (со стороны организации)
revocationReasonstringПричина отзыва приглашения (со стороны организации)
declinedAtstringДата и время отклонения приглашения (со стороны пользователя)
declineReasonstringПричина отклонения приглашения (со стороны пользователя)
tokenstringТокен приглашения (возвращается только при создании)

Статусы приглашения​

СтатусОписание
PENDINGПриглашение создано и ожидает ответа
ACCEPTEDПриглашение принято
DECLINEDПриглашение отклонено пользователем
REVOKEDПриглашение отозвано организацией
EXPIREDСрок действия приглашения истёк

 

Получение списка инвайтов​

Метод API предназначен для получения списка приглашений организации с использованием фильтров.

Требует доступы: org.invitations.read.

Запрос​

Метод: POST URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/invitations/filter

Path Parameters​

ПараметрТипОбязательное полеОписаниеПример
organisationIdstring (uuid)ДаID организации550e8400-e29b-41d4-a716-446655440000

Общая структура запроса описана в разделе Фильтрация: общая структура.

Доступные фильтры (filters)​

Имя (name)Тип значения (value)Описание
STATUSstring или array[string]Статус приглашения: PENDING, ACCEPTED, DECLINED, REVOKED, EXPIRED
INVITEE_EMAILstring или array[string]Email приглашённого

Организация всегда берётся из пути, фильтр ORGANISATION_ID передавать не нужно.

Доступные сортировки (order)​

Поле (field)Описание
CREATED_ATДата создания приглашения
EXPIRES_ATДата истечения приглашения

Пример запроса​

curl --location "https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/invitations/filter" \
--header "accept: application/json" \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ВАШ_API_КЛЮЧ" \
--data '{
"filters": [],
"pagination": {
"limit": 20,
"lastId": null
}
}'

Пример успешного ответа​

{
"requestId": "97c5678a-8c6a-4688-8452-68ab606fe049",
"result": {
"lastId": "123e4567-e89b-12d3-a456-426614174000",
"items": [
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"inviteeEmail": "user@example.com",
"status": "PENDING",
"roles": [
{
"id": "019d06af-5e5d-7313-b8ba-df1640767435",
"code": "OWNER",
"name": "Владелец",
"description": "Владелец организации. Полный доступ."
}
],
"createdAt": "2025-10-15T10:30:00Z",
"expiresAt": "2025-10-22T10:30:00Z"
}
]
},
"success": true
}

Описание полей ответа​

ПолеТипОписание
requestIdstringУникальный идентификатор запроса
successbooleanСтатус выполнения запроса (true/false)
resultobjectКонтейнер с данными ответа
lastIdstring | numberID последнего элемента в текущем списке
itemsarray[obj]Массив найденных приглашений
idstring (uuid)Идентификатор приглашения
inviteeEmailstringEmail приглашённого
statusstringСтатус приглашения (PENDING, ACCEPTED, DECLINED, REVOKED, EXPIRED)
rolesarray[obj]Роли, которые будут назначены при вступлении
roles[].idstring (uuid)UUID роли
roles[].codestringТехническое название роли
roles[].namestringЧеловекочитаемое название роли
roles[].descriptionstringОписание роли
createdAtstringДата и время создания
expiresAtstringДата и время истечения

 

Отзыв инвайта​

Метод API отзывает приглашение пользователя в организацию.

Требует доступы: org.invitations.revoke.

Запрос​

Метод: POST URL: https://b2b.selfwork.ru/openapi/v2/organisation/{organisationId}/invitations/{invitationId}/revoke

Path Parameters​

ПараметрТипОбязательное полеОписаниеПример
organisationIdstring (uuid)ДаID организации550e8400-e29b-41d4-a716-446655440000
invitationIdstring (uuid)ДаИдентификатор приглашения123e4567-e89b-12d3-a456-426614174000

Request Body​

ПолеТипОбязательное полеОписание
reasonstringНетПричина отзыва инвайта

Пример запроса​

curl -X 'POST' \
"https://b2b.selfwork.ru/openapi/v2/organisation/550e8400-e29b-41d4-a716-446655440000/invitations/123e4567-e89b-12d3-a456-426614174000/revoke" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer ВАШ_API_КЛЮЧ" \
-d '{
"reason": "Позиция закрыта"
}'

Пример успешного ответа​

{
"requestId": "97c5678a-8c6a-4688-8452-68ab606fe049",
"result": {},
"success": true
}

Описание полей ответа​

ПолеТипОписание
requestIdstringУникальный идентификатор запроса
successbooleanСтатус выполнения запроса (true/false)
resultobjectПустой объект

Возможные ошибки​

КодHTTP StatusОписание
INVITATION_NOT_FOUND404Приглашение не найдено
INVITATION_ALREADY_ACCEPTED422Приглашение уже принято
INVITATION_ALREADY_DECLINED422Приглашение уже отклонено
INVITATION_REVOKED422Приглашение уже отозвано
INVITATION_EXPIRED422Приглашение истекло