Подключите Wellemo к вашей HR-системе: заводите сотрудников, назначайте курсы, забирайте прогресс и результаты, получайте события вебхуками.
OpenAPI JSON
Базовый URL: https://wellemo.com/api/b2b/v1
Authorization: Bearer <token>. Все тела и ответы — JSON, даты — ISO 8601.{"result": "success", "data": {...}} или {"result": "error", "message": "..."} с HTTP-кодом 400/401/403/404/409.externalId для сотрудников и назначений — операции по ним идемпотентны.curl -X POST https://wellemo.com/api/b2b/v1/employees/provision \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"externalId":"EMP-001","email":"user@company.ru","name":"Иван Иванов"}'
curl -X POST https://wellemo.com/api/b2b/v1/assignments \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"employeeExternalId":"EMP-001","courseId":45,"externalId":"ASSIGN-1","deadline":"2026-12-31T23:59:59Z","isRequired":true}'
curl https://wellemo.com/api/b2b/v1/assignments/by-external-id/ASSIGN-1/progress -H "Authorization: Bearer $TOKEN"
b2b_read — чтение: сотрудники, курсы, назначения, прогресс, отчёты.b2b_provision — сотрудники: создание/привязка, изменение, offboarding, удаление.b2b_assignment — назначения: создать, массово, отозвать.{
"externalId": "EMP-001",
"email": "user@company.ru",
"name": "Иван Иванов"
}
{
"result": "success",
"data": {
"id": 101,
"externalId": "EMP-001",
"email": "user@company.ru",
"status": "created"
}
}
page (query), limit (query), externalId (query), email (query), tag (query){
"result": "success",
"data": {
"items": [
{
"id": 101,
"externalId": "EMP-001",
"email": "user@company.ru",
"name": "Иван Иванов",
"role": "employee",
"tags": [
"sales"
],
"joinedAt": "2026-08-01T10:00:00+00:00"
}
],
"pagination": {
"page": 1,
"limit": 100,
"total": 1,
"pages": 1
}
}
}
externalId{
"result": "success",
"data": {
"id": 101,
"externalId": "EMP-001",
"email": "user@company.ru",
"name": "Иван Иванов",
"role": "employee",
"tags": [
"sales"
],
"joinedAt": "2026-08-01T10:00:00+00:00",
"assignments": [
{
"id": 505,
"externalId": "ASSIGN-1",
"employeeExternalId": "EMP-001",
"employeeEmail": "user@company.ru",
"courseId": 45,
"courseName": "Onboarding",
"status": "started",
"statusCategory": "in_progress",
"isOverdue": false,
"completionPercent": 45.5,
"score": null,
"numberOfAttempts": 1,
"isRequired": true,
"assignedAt": "2026-08-01T10:00:00+00:00",
"deadline": "2026-08-31T23:59:59+00:00",
"startedAt": "2026-08-02T09:00:00+00:00",
"completedAt": null,
"lastActivityAt": "2026-08-02T09:30:00+00:00"
}
]
}
}
externalId{
"name": "Иван Иванов",
"tags": [
"sales",
"moscow"
],
"active": true
}
{
"result": "success",
"data": {
"id": 101,
"externalId": "EMP-001",
"email": "user@company.ru",
"name": "Иван Иванов",
"role": "employee",
"tags": [
"sales"
],
"joinedAt": "2026-08-01T10:00:00+00:00"
}
}
externalId{
"result": "success",
"data": {
"externalId": "EMP-001",
"status": "deleted"
}
}
{
"result": "success",
"data": {
"items": [
{
"id": 45,
"name": "Onboarding",
"externalId": null,
"isAssessment": false
}
]
}
}
{
"employeeExternalId": "EMP-001",
"courseId": 45,
"externalId": "ASSIGN-1",
"deadline": "2026-12-31T23:59:59Z",
"isRequired": true
}
{
"result": "success",
"data": {
"id": 505,
"externalId": "ASSIGN-1",
"status": "assigned",
"statusCategory": "not_started",
"isOverdue": false,
"assignedAt": "2026-08-01T10:00:00+00:00",
"deadline": "2026-12-31T23:59:59+00:00"
}
}
employeeExternalId (query), status (query), courseId (query), updatedSince (query), page (query), limit (query){
"result": "success",
"data": {
"items": [
{
"id": 505,
"externalId": "ASSIGN-1",
"employeeExternalId": "EMP-001",
"employeeEmail": "user@company.ru",
"courseId": 45,
"courseName": "Onboarding",
"status": "started",
"statusCategory": "in_progress",
"isOverdue": false,
"completionPercent": 45.5,
"score": null,
"numberOfAttempts": 1,
"isRequired": true,
"assignedAt": "2026-08-01T10:00:00+00:00",
"deadline": "2026-08-31T23:59:59+00:00",
"startedAt": "2026-08-02T09:00:00+00:00",
"completedAt": null,
"lastActivityAt": "2026-08-02T09:30:00+00:00"
}
],
"pagination": {
"page": 1,
"limit": 100,
"total": 1,
"pages": 1
}
}
}
{
"items": [
{
"employeeExternalId": "EMP-001",
"courseId": 45,
"externalId": "ASSIGN-1",
"deadline": "2026-12-31T23:59:59Z",
"isRequired": true
}
]
}
{
"result": "success",
"data": {
"results": [
{
"index": 0,
"ok": true,
"assignmentId": 505,
"status": "assigned"
}
]
}
}
id{
"result": "success",
"data": {
"id": 505,
"externalId": "ASSIGN-1",
"employeeExternalId": "EMP-001",
"employeeEmail": "user@company.ru",
"courseId": 45,
"courseName": "Onboarding",
"status": "started",
"statusCategory": "in_progress",
"isOverdue": false,
"completionPercent": 45.5,
"score": null,
"numberOfAttempts": 1,
"isRequired": true,
"assignedAt": "2026-08-01T10:00:00+00:00",
"deadline": "2026-08-31T23:59:59+00:00",
"startedAt": "2026-08-02T09:00:00+00:00",
"completedAt": null,
"lastActivityAt": "2026-08-02T09:30:00+00:00"
}
}
id{
"result": "success",
"data": {
"id": 505,
"revoked": true
}
}
id{
"result": "success",
"data": {
"id": 505,
"completionPercent": 45.5,
"lastActivityAt": "2026-08-02T11:30:00+00:00",
"status": "started",
"statusCategory": "in_progress",
"isOverdue": false
}
}
id{
"result": "success",
"data": {
"id": 505,
"score": 85,
"numberOfAttempts": 2,
"status": "completed",
"statusCategory": "completed",
"completedAt": "2026-08-02T12:00:00+00:00",
"resultSummary": {
"completionState": "success",
"isPassed": true,
"finalScore": 85,
"summary": "Completed with score 85%"
}
}
}
externalId{
"result": "success",
"data": {
"id": 505,
"externalId": "ASSIGN-1",
"employeeExternalId": "EMP-001",
"employeeEmail": "user@company.ru",
"courseId": 45,
"courseName": "Onboarding",
"status": "started",
"statusCategory": "in_progress",
"isOverdue": false,
"completionPercent": 45.5,
"score": null,
"numberOfAttempts": 1,
"isRequired": true,
"assignedAt": "2026-08-01T10:00:00+00:00",
"deadline": "2026-08-31T23:59:59+00:00",
"startedAt": "2026-08-02T09:00:00+00:00",
"completedAt": null,
"lastActivityAt": "2026-08-02T09:30:00+00:00"
}
}
status (query)В кабинете (Интеграции → Вебхуки) укажите URL и выберите события. Мы отправим POST с JSON:
{"event":"assignment.completed","companyId":1,"occurredAt":"...","data":{...}}.
Подпись — заголовок X-Wellemo-Signature: sha256=<HMAC-SHA256(body, secret)>; проверяйте её и отвечайте 2xx.
При ошибке повторяем до 6 раз с нарастающей задержкой; лог доставок виден в кабинете.
События: assignment.created, assignment.completed, assignment.failed, assignment.overdue, employee.joined, employee.removed.
status: assigned → started → completed | failed → needs_retry. statusCategory: not_started, in_progress, completed, overdue.
Напишите на info@wellemo.com — обсудим сценарий и поможем с подключением.
О бизнес-кабинете