Журнал изменений
Каждое изменение API указано здесь с версией и датой. Несовместимые изменения выходят только как новая версия пути с уведомлением минимум за двенадцать месяцев.
v1.411.0 · 10 ноября 2026 г.
- Новое: отчёты о посещаемости для выбора.
learning.createAttendanceReportпринимаетcontactListId(класс; учитываются его участники, записанные на курс) илиcontactIds(от 1 до 500 участников), но не оба; без них, как прежде, все участники. PDF и CSV называют только выбранных. Два действующих отчёта не могут пересекаться только для одного и того же человека (409period-overlaps), иattendance-finalizedдействует только для людей в отчёте. Если в выборе нет участников:no-participants. Каждый отчёт содержитselection(course,contactList,contacts),contactListIdиcontactIds.
v1.410.0 · 10 ноября 2026 г.
- Новое: события
learning.attendance.minimumAtRisk(минимальную посещаемость курса можно достичь, только посетив все оставшиеся занятия) иlearning.attendance.minimumUnreachable(её больше нельзя достичь), один раз для каждой стадии, курса и контакта, проверка ежедневно, только для курсов вашей организации. Данные содержат только идентификаторы и числа:courseId,sharedCourseId(null),contactId,attendedCount,pastCount,totalCount,requiredCount,minimumPercent; тот же расчёт, что иstatusвlearning.getCourseAttendance.
v1.409.0 · 10 ноября 2026 г.
- Новое: зафиксированные отчёты о посещаемости.
learning.createAttendanceReport(POST /learning/courses/{id}/attendance-reports) фиксирует список курса за период (from,to, календарные дни включительно) или без них за весь курс и выпускает PDF с кодом проверки (document); каждое занятие периода с датой должно уже пройти (409sessions-pending), хотя бы одно должно попадать в период (no-sessions), и ни один действующий отчёт не может иметь общий день (409period-overlaps).learning.listAttendanceReports,learning.getAttendanceReport(с зафиксированнымиsessionsиdata),learning.getAttendanceReportCsvиlearning.cancelAttendanceReport(аннулирует и PDF). Отметки к занятиям действующего отчётаlearning.createAttendanceEntryиlearning.revokeAttendanceEntryотклоняют с409attendance-finalized. Пока отчёты в среде не включены, фиксация даётfeature-not-availableсreason: "attendance-reports-disabled".
v1.408.0 · 10 ноября 2026 г.
- Новое: посещаемость класса.
learning.getContactListAttendance(GET /contact-lists/{id}/learning-attendance) возвращает для каждого текущего участника класса и урока-занятия всех курсов, доступных классу через доступ, те же ячейки, что иlearning.getCourseAttendance, а также посещения иstatusпо каждому курсу и посещения и процент по всем курсам. У каждого занятия естьcourseIdиsharedCourseId(nullдля собственных курсов); если у участника нет выдачи курса, там стоитnotParticipant: trueи ячеек нет.learning.getContactListAttendanceCsvвозвращает тот же список в формате CSV. Только чтение; отметки и отчёты ведутся в каждом курсе.
v1.407.0 · 10 ноября 2026 г.
- Новое: управление профилями каталога.
finder.listProfiles(GET /finder/profiles) возвращает все профили специалистов организации в любом состоянии, с фильтрамиstatusиcontactId; публичное представление остаётсяGET /finder/practitioners.finder.deleteProfile(DELETE /finder/profiles/{id}, правоfinder:write) окончательно удаляет архивный профиль вместе с запросами, проверками, сертификатами и адресами и сообщает в ответе их количество; профиль в другом состоянии даёт409 conflictсreason: "profile-not-archived". - Изменено:
contacts.merge(POST /contacts/{id}/merge) больше не завершается ошибкой из-за архивного профиля каталога. Он удаляется при объединении вместе с запросами, проверками, сертификатами и адресами; остаётся не более одного профиля (неархивный, иначе профиль сохраняемого контакта, иначе изменённый последним).409сpractitioner-profiles-on-multipleтеперь возникает, только если встретились бы два неархивных профиля.
v1.406.0 · 9 ноября 2026 г.
- Новое: отметки посещаемости.
learning.createAttendanceEntryотмечает для урока-занятия «очно» (onSite, засчитывается как посещение и отмечает урок выполненным) или «уважительная причина» (excused) с указанием причины; не более одной на участника и урок (409already-recorded).learning.revokeAttendanceEntryотменяет отметку и возвращает её сrevokedAt. Каждая ячейка списка посещаемости содержитentry. Список, его CSV и отметки принимают в качестве{id}иcourseIdкурса по совместному доступу (learning.listSharedCourses), без встречи поставщика. Пока отметки в среде не включены, добавление даётfeature-not-availableсreason: "attendance-entries-disabled".
v1.405.0 · 9 ноября 2026 г.
- Новое: посещаемость курса.
learning.getCourseAttendanceвозвращает для каждого участника и урока-занятия минуты и долю во время встречи (измерено в онлайн-комнате, только время от начала до конца),measurement(upcoming,measured,absent,notMeasured,cancelled), посещение, процент иstatusотносительно минимальной посещаемости завершения (onTrack,atRisk,unreachable);learning.getCourseAttendanceCsv— тот же список в формате CSV. Только для курсов вашей организации; для курса по совместному доступу пока ответnot-found(появится вместе с ручными отметками). - Изменено: урок-занятие считается посещённым, только если участник был в онлайн-комнате во время встречи (только время от начала до конца), а не просто в открытой комнате до или после неё. Это сразу влияет на состояние урока в
learning.getCourseParticipant, а также наcompletedCountвlearning.getCourseProgress,learning.listCompletionsи событиеlearning.course.completed, если завершение зависит от уроков-занятий. Уже зафиксированные уроки остаются выполненными; правило действует со следующей фиксации.
v1.404.0 · 9 ноября 2026 г.
- Новое: повторная отправка разрешённых, но не отправленных счетов.
POST /invoices/plan-runs/resend(тело как уrelease,runId) иPOST /invoices/resend-released(ids, от 1 до 200) отправляют только разрешённые, ещё не отправленные счета, с 200 и{ sent, notSent, notSentInvoices, skipped }:notSentкак при разрешении (причина → количество),notSentInvoicesпо каждому счёту сid,numberиreason(ключ логики отправки),skippedдля идентификаторов без такого счёта. Только ORG_ADMIN. Новое вGET /invoices/plan-runs:releasedNotSentпо каждому прогону. - Изменено:
GET /invoices/plan-runsпоказывает прогон и тогда, когдаwaitingравно 0, аreleasedNotSentбольше 0. Автоматически отправленные счета (последующие по подписке, разрешение досланных счетов и счетов по планам, первое списание) после отправки получают статусSENTи создают событиеinvoices.invoice.sent, как отправка черезPOST /invoices/{id}/send; раньше они оставалисьISSUEDбез события.
v1.403.0 · 9 ноября 2026 г.
- Новое: условия оплаты для многих контактов.
POST /contacts/billing-defaults/update(scopecontacts:write) задаёт стандартные условия оплаты дляcontactIds(от 1 до 500) или для всех результатовfilterс полямиGET /contacts(q,type,tag,responsible,directDebitMandate), ровно одно из двух;paymentTermId: nullснимает собственные. Ответ{ matched, unchanged, overwritten, updated }с 200.POST /contacts/billing-defaults/update/preview(scopecontacts:read) считает с тем же телом без изменений,{ matched, unchanged, overwritten }. Более 5 000 результатов: 422precondition-failed,reason: too-many-contacts, сmatched. Архивные условия оплаты считаются ненайденными (404). Как иPATCH /contacts/{id}/billing-defaults, не создаёт событий. Новое вGET /contacts:directDebitMandate=valid|notValid— контакты с действующим SEPA-мандатом на прямое дебетование или без него (статус GUELTIG и не истёк через 36 месяцев без использования).
v1.402.0 · 7 ноября 2026 г.
- Изменено: доступы, выдачи, классы у доступа и доступы у товара теперь работают с одним из прав
LERN_BIBLIOTHEK(библиотека) илиLERN_KURSE(курсы), как их показываетGET /organization/entitlements; раньше только сLERN_BIBLIOTHEK. Затронуты:learning.listAccesses,learning.createAccess,learning.updateAccess,learning.archiveAccess,learning.unarchiveAccess,learning.listGrants,learning.grantAccess,learning.revokeAccess,learning.revokeAccessOfContact,learning.getAccessContactLists,learning.setAccessContactLists,learning.getArticleAccesses,learning.setArticleAccesses. Подборке в доступе по-прежнему нужноLERN_BIBLIOTHEK, курсуLERN_KURSE; создание доступа с подборкой И курсом требует обоих, иначеfeature-not-available. Исключение:learning.setAccessCollectionsиlearning.setAccessCoursesс пустым списком работают с любым из двух прав. Действия автоматизацийlern-zugang-gewaehrenиlern-zugang-entziehenвызываютlearning.grantAccessиlearning.revokeAccessOfContactи следуют тому же правилу.
v1.401.0 · 7 ноября 2026 г.
- Новое:
responsibleContactId(nullable) у курса (learning.getCourse,learning.listCourses,learning.updateCourse): контакт, который ведётся как преподаватель; он отвечает на вопросы и работы в портале в разделе «Как преподаватель». Оба поля исключают друг друга; установка одного очищает другое. Оба со значением одновременно даютinvalid_combination, контакт без записи преподавателя —not-foundвbody.responsibleContactId. - Новое:
feedback.contactId(nullable) у каждого раунда вlearning.getSubmission: преподаватель-контакт, если отзыв дан в портале; тогдаuserIdравенnull.
v1.400.0 · 7 ноября 2026 г.
- Новое:
sharedCourseId(nullable) у каждой работы (learning.listSubmissions,learning.getSubmission) и каждого завершения (learning.listCompletions), а также в событияхlearning.submission.submitted,learning.submission.reviewedиlearning.course.completed: предоставление, если курс принадлежит другой организации (сразу кlearning.getSharedCourse), для собственных курсовnull. - Новое:
certificateTemplateIdтакже у каждой записиlearning.listSharedCourses, а не только вlearning.getSharedCourse.
v1.399.0 · 7 ноября 2026 г.
- Новое:
learning.setSharedCourseCertificateзадаёт ваш собственный шаблон сертификата для предоставленного курса или удаляет его (null); уже завершившие без сертификата получают его задним числом (issuedCount). Кроме того,certificateTemplateIdвlearning.getSharedCourse. Шаблон организации-поставщика у вас не действует. - Изменено:
learning.listCourseParticipants,learning.getCourseParticipant,learning.completeParticipantLesson,learning.reopenParticipantLesson,learning.getCourseProgressиlearning.resetQuizAttemptsпринимают такжеcourseIdпредоставленного курса (изlearning.listSharedCourses); участники — ваши контакты с выдачей через это предоставление.learning.getCourseдля этого идентификатора по-прежнему возвращает 404. - Изменено:
learning.listSubmissionsиlearning.listCompletionsвозвращают также работы и завершения по предоставленным курсам; ихcourseId— идентификатор курса организации-поставщика, фильтрcourseIdдействует на оба вида. Тот же идентификатор стоит вlearning.submission.*иlearning.course.completed.
v1.398.0 · 6 ноября 2026 г.
- Новое:
learning.releaseSharedCourseItemоткрывает часть (course,module,lesson) предоставленного курса для всех, у кого сейчас есть к нему доступ: для каждого одно вмешательство «Открыть сейчас» с причиной (releasedсчитает их, 0 не ошибка). Кроме того,waitsForAppointmentу курса, каждого модуля и каждого урока вlearning.getSharedCourse. - Изменено: в предоставленных курсах условие «после встречи» организации-поставщика отображается у вас как
manual(никогда какafterAppointment). Его видно поwaitsForAppointmentвlearning.getSharedCourse; открыть можно черезlearning.releaseSharedCourseItemилиlearning.createIntervention. - Изменено:
learning.createInterventionтеперь принимает также курс, модуль и урок предоставленного курса, если доступ выдачи включает это предоставление.
v1.397.0 · 6 ноября 2026 г.
- Новое: курсы, которые другие организации предоставили вашей организации.
learning.listSharedCourses(сproviderName,createdAt,endedAt,active; завершённые предоставления, пока у вас действуют доступы),learning.getSharedCourse(заголовок и структура только для чтения, в форме собственных курсов) иlearning.setAccessSharedCourses.sharedCourseIdsу каждого доступа и вlearning.createAccess. Завершённое предоставление нельзя добавить заново (422shared-course-ended), неизвестное сообщается вbody.sharedCourseIds.
v1.396.0 · 6 ноября 2026 г.
- Новое: предоставление курсов другим организациям, сторона поставщика.
learning.listCourseShareConnections(активные подключения для предоставления курсов),learning.listCourseShares(предоставления курса сparticipantCount— числом участников с действующим доступом в другой организации, без имён),learning.shareCourse(201,created) иlearning.endCourseShare(действующие там доступы продолжаются до окончания; уже завершено: 409already-ended). Только администраторы. Ошибки: 404connection-unknown, 422connection-not-active,connection-revoked,connection-wrong-purpose,course-not-published. - Изменено:
learning.archiveCourseзавершает предоставления курса другим организациям; действующие там доступы продолжаются до окончания. Восстановление (learning.unarchiveCourse) не открывает их снова.
v1.395.0 · 6 ноября 2026 г.
- Новое у каждой подборки (
learning.listCollections,learning.createCollection,learning.updateCollectionи все ответы с подборкой):recommendation(«Подходит к этому», та же форма, что у курса: другая подборка, курс или своя ссылка), задаётся при создании и изменении;nullудаляет рекомендацию, если поля нет — она остаётся. Подборка не может рекомендовать саму себя (422 вrecommendation.collectionId).
v1.394.0 · 6 ноября 2026 г.
- Новое у каждого курса (
learning.*Course*):withoutLearningControl(«Без контроля обучения»: нет вопросов преподавателю и нет уроков-заданий; тесты и уроки-встречи остаются; по умолчаниюfalse), задаётся вlearning.createCourseиlearning.updateCourse. Включение, пока в курсе есть уроки-задания (включая черновики): 422precondition-failedсassignments-present,lessonIds(не более 100) иassignmentCount. - Изменено: в курсе с
withoutLearningControllearning.createLessonсtype: "assignment"отклоняется (422precondition-failed,without-learning-control), а импорт курса не создаёт уроки-задания из источника и не переводит уроки в задания; они перечислены вkeptсreason: "without-learning-control". Клиентам следует обрабатывать неизвестные причины вkeptв общем виде.
v1.393.0 · 6 ноября 2026 г.
- Новое в
learning.getAppointmentMaterialиlearning.updateAppointmentMaterial:recordingCollectionId(действующая подборка записи) и переопределениеrecordingCollectionOverride({ collectionId }илиnull= как у вида приёма; «без подборки» на приёме не бывает, неизвестна: 422 вbody.recordingCollectionOverride.collectionIdсnot-found). Если действующая подборка меняется безrecordingFolderOverride, на приёме снова действует папка вида приёма. - Новое:
learning.addAppointmentRecordings(POST /appointments/{id}/learning-material/recordings) задним числом помещает готовые видеозаписи приёма без учебного материала как черновики в подборку, папку и со сроком приёма; ответ 200 сcreatedиrecordings. 422recording-consent-incomplete(исправляетсяconfirmIncompleteConsent: true) иno-target-collection. Плюс списокrecordingsвlearning.getAppointmentMaterial(только то, что доступ может видеть). - Изменено:
visibleDaysAfterReleaseтеперь можно задавать вlearning.createContentиlearning.updateContent(от 1 до 3650 илиnull), и он действует для любого материала, а не только для записей; раньше только чтение у записей. Недопустимо: 422 вbody.visibleDaysAfterRelease.
v1.392.0 · 6 ноября 2026 г.
- Новое в местах подписантов шаблона PDF (
templates.getPdf,templates.updatePdf,signerSlots):contactId— предлагаемый контакт с адресом электронной почты, который подписывает по ссылке электронной подписи (например, преподаватель, не являющийся участником). Место содержитuserIdилиcontactId, никогда оба. Если контакта нет или у него нет адреса электронной почты: 422 вbody.signerSlotsсinvalid_reference. - Новое в выданных документах (
letters.getIssuedи прочие ответы с документом,signature.slots):suggestedContactId— контакт, который шаблон предлагает для места (null, если он предлагает участника или никого).
v1.391.0 · 6 ноября 2026 г.
- Изменённое поведение: если задача относится к повторному контакту из списка звонков (её создаёт пайплайн), карточка следует за ней:
PATCH /tasks/{id}с новымdueDateпереносит повторный контакт карточки;statusDONE,DELETE /tasks/{id}илиdueDate: nullснимают его (отложенная карточка его сохраняет); при повторном открытии он возвращается со сроком задачи. Это относится и кPOST /tasks/{id}/status. Другие поля карточку не меняют.
v1.390.0 · 6 ноября 2026 г.
- Изменено: для случая Metabolic Balance засчитывается самая новая отправка анкеты, ещё не использованная прежним случаем этой карты клиента, даже если она пришла до начала случая; раньше — только после начала.
form.responseId/form.submittedAtвclients.listMetabolicBalanceCasesиstartMetabolicBalanceCase, а также передача (…/handover,…/handover/send) следуют этому правилу;submittedAtможет быть раньшеstartedAt. Это относится и к уже идущим случаям. - Изменено: в передачу в Metabolic Balance (
…/handover,bloodValues, и…/handover/send) попадают только значения из утверждённых результатов, считанных или введённых вручную; раньше хватало считанного, даже черновика. Отклонённые результаты нигде не учитываются. В случае (report) результаты, введённые вручную, учитываются после отправки; если всё считано, но ещё не всё утверждено, шагreportсообщает об этом.
v1.389.0 · 5 ноября 2026 г.
- Новое в
learning.getAppointmentTypeMaterialиlearning.setAppointmentTypeMaterial:recordingFolderId(папка целевой подборки для записи,null= верхний уровень; не в подборке: 422) иrecordingVisibleDays(видна N дней после открытия, от 1 до 3650,null= без срока). ЕслиrecordingCollectionIdменяется без новой папки, папка становитсяnull. - Новое в
learning.getAppointmentMaterialиlearning.updateAppointmentMaterial: действующиеrecordingFolderIdиrecordingVisibleDays, а также переопределенияrecordingFolderOverride({ folderId }илиnull= как у вида приёма) иrecordingVisibleDaysOverride({ days }илиnull). Папка, которой больше нет в подборке, действует как верхний уровень. - Новое в материале:
visibleDaysAfterRelease(только чтение, только для записей, иначеnull). Изменённое поведение в представлении контакта: запись со сроком больше не показывается через столько дней после открытия контакту (поиск сcontactId, медиа); открытие остаётся вlearning.listReleases, а материал — в библиотеке организации.
v1.388.0 · 5 ноября 2026 г.
- Изменённое поведение: материал после занятия (запуск в конце приёма и
learning.releaseAppointmentMaterial) получают по каждому материалу все с действующим доступом к его подборке, независимо от записи на приём; приattendeesOnly— присутствовавшие с доступом. Раньше его получали записанные, а не ответившие выпадали.recipientCountсчитает разные контакты. - Изменённое поведение: открытие материала публикует неопубликованное (кроме черновиков). При
attendeesOnlyоно остаётся неопубликованным и в представлении контакта видно только получателям; отсутствовавшим такой материал не показывается, даже по расписанию подборки.
v1.387.0 · 5 ноября 2026 г.
- Преподаватели проводят приёмы:
resourceIdвappointments.create(и в сериях приёмов) теперь принимает и преподавателя (teacherу ресурса), для любого типа приёма и в любое время, без состава и без рабочего времени; проверяется только, нет ли у него уже приёма в это время (иначе409 conflictсslot-taken).appointments.rescheduleсохраняет преподавателя приёма и безresourceId. Онлайн-приёмы преподавателя получают живую комнату. Раньше такойresourceIdотвечал ошибкой, что ресурс не относится к типу приёма.
v1.386.0 · 5 ноября 2026 г.
- Преподаватели (контакт, проводящий занятия как ведущий, без свободного времени):
GET,PUTиDELETE /appointment-teachers/{contactId}(appointments.getTeacher,appointments.setTeacher,appointments.removeTeacher).getTeacherвозвращаетisTeacher,resourceId,removable,upcomingCountи ближайшие не более 20 приёмов (upcomingсparticipantCount, без имён); контакт, который не преподаватель, отвечаетisTeacher: false.setTeacherповторяем и отвечает200;removeTeacherотвечает204, при будущих приёмах409 conflictсreasonupcoming-appointmentsиextra.count. Отсутствующий или чужой контакт даёт404, компания —validation-failedвparams.contactIdсcodenot-a-person. У каждого ресурса новое полеteacher(appointments.listResources,appointments.getResource).
v1.385.0 · 5 ноября 2026 г.
- Новое:
POST /clients/{id}/metabolic-balance-client/plans/{planId}/copy-pdf(clients.copyMetabolicBalancePlanPdf, без тела, 200) переносит PDF плана связанного клиента из Metabolic Balance в карту клиента как защищённую копию, только по этому явному вызову для каждого плана. Ответ{ planId, documentId, copiedAt, created }; если PDF уже в карте (своя копия или PDF случая), приходит тот же идентификатор сcreated: false, ничего не загружается заново. Причины: 404, если план не принадлежит связанному клиенту; 422metabolic-balance-client-not-linkedиmetabolic-balance-plan-without-pdf(сextra.planState); 409metabolic-balance-pdf-failed(сextra.error) иmetabolic-balance-copy-in-progress(зависшая попытка истекает через пять минут). - Новое в
clients.listMetabolicBalanceClientPlansдля каждого плана:documentId— PDF плана в карте (PDF случая или перенесённая копия), иначеnull; файл черезdocuments.downloadUrl.
v1.383.0 · 5 ноября 2026 г.
- Новое: данные в Metabolic Balance в карте клиента.
GET /clients/{id}/metabolic-balance-client(clients.getMetabolicBalanceClient) показывает, с каким клиентом в MBG связана карта (без связи: 200 сlinked: false).GET …/metabolic-balance-client/candidates(clients.searchMetabolicBalanceClients,searchот 2 до 100 символов) ищет во всём аккаунте MBG: не более 10 кандидатов, анонимизированных никогда, с порядкомmatch.PUT …/metabolic-balance-client(clients.linkMetabolicBalanceClient,{ patientId }, 200) связывает только по этому явному вызову; сначала claritos читает клиента в MBG: 422validation-failedвbody.patientId, 409metabolic-balance-client-linked-elsewhereсextra.clientId.DELETE …/metabolic-balance-client(clients.unlinkMetabolicBalanceClient, 204) удаляет только связь в claritos.GET …/metabolic-balance-client/plans(clients.listMetabolicBalanceClientPlans) и…/blood-tests(clients.listMetabolicBalanceBloodTests, сначала новые, не более 20) читают в MBG при каждом вызове, ничего не сохраняется; без связи{ data: [] }. - Если карта связана,
…/handover/sendберёт этого клиента и не проверяет дубликаты; если коуч при отправке выбирает или создаёт клиента, карта без связи связывается с ним.
v1.381.0 · 5 ноября 2026 г.
- Новое:
POST /clients/{id}/metabolic-balance-cases/{caseId}/handover/release-plan(clients.releaseMetabolicBalancePlan,{ phase, allowedTreatMeals, allowedOils }, 200) утверждает план в MBG и передаёт его клиенту; claritos отправляет клиенту письмо без сведений о здоровье и показывает план в его клиентском портале. Уведомляет ли MBG клиента сам, пока неизвестно; claritos не отменяет передачу; никогда дважды, повторный вызов после частичной ошибки продолжает. Причины: 422metabolic-balance-not-generated(сextra.planState), 409metabolic-balance-already-released, а также известные. - Новое в
mbgпередачи:releaseDefaults(значения плана в MBG как предзаполнение) иreleasedAt.
v1.380.0 · 5 ноября 2026 г.
- Новое: чат проверки с бэк-офисом Metabolic Balance.
GET /clients/{id}/metabolic-balance-cases/{caseId}/handover/chat(clients.listMetabolicBalanceChatMessages) читает последние 100 сообщений, сначала старые, в MBG при каждом вызове (claritos не сохраняет сообщения; чтение ничего не отмечает как прочитанное; без чата пустой список).POST …/handover/chat(clients.postMetabolicBalanceChatMessage,{ text }, 200) отправляет сообщение; 409metabolic-balance-no-chatбез чата. От повторной отправки защищаетIdempotency-Key. - Новое в
mbgпередачи:chatAvailableиchatUnreadSince.
v1.379.0 · 5 ноября 2026 г.
- Новое в
mbgпередачи:planDocumentId(PDF плана в карте, копируется в защищённое хранилище, как только план создан в MBG; если MBG создаёт его заново, claritos заменяет файл под тем же идентификатором, а если это не удаётся, остаётся прежний) иplanPdfError(no-pdf,fetch-failed,not-a-pdf,too-large; после пяти неудач больше не пытается). Файл получают черезdocuments.downloadUrlс этим идентификатором, только для ключей с доступом к данным клиентов; собственные ссылки MBG claritos никогда не выдаёт.
v1.378.0 · 5 ноября 2026 г.
- Новое:
POST /clients/{id}/metabolic-balance-cases/{caseId}/handover/generate-plan(clients.generateMetabolicBalancePlan) создаёт план в Metabolic Balance. Каждый вызов, который создаёт план, стоит один план на счёте организации в MBG; тело требуетconfirmCost: true, повторный вызов никогда не создаёт дважды. Ответ 200 с передачей. Причины: 422metabolic-balance-not-sent,metabolic-balance-not-ready(сextra.checkErrors); 409metabolic-balance-already-generated(сextra.planState), а также известные. - Новое в
mbgпередачи:generationRequestedAt,verificationReason(наши ключи),blockReason(текст MBG, не более 500 символов) иlastCheckedAt. claritos запрашивает планы, которые чего-то ждут (создание, проверка): вскоре после создания и каждые пять минут.
v1.377.0 · 5 ноября 2026 г.
- Новое:
POST /clients/{id}/metabolic-balance-cases/{caseId}/handover/laboratory(clients.createMetabolicBalanceLaboratory) создаёт новую лабораторию в управлении лабораториями коуча в Metabolic Balance и выбирает её в случае. Профиль ввода берётся из отчёта: единица и нормальный диапазон для пола клиента, иначе значения MBG; без персональных данных. Ответ 200 с передачей. 409metabolic-balance-laboratory-existsсextra.laboratoryId, если лаборатория с таким названием уже есть (выбрать черезPATCH …/handover); если не удалось только сохранить профиль, повторный вызов продолжает. Другие причины: 422metabolic-balance-not-connected,validation-failed(напримерbody.countryId); 409case-closed,metabolic-balance-rejected,metabolic-balance-unavailable. - Новое в передаче (
GET,PATCH,send):options.countries(страны из MBG) иoptions.reportLaboratory(name,matchedLaboratoryId,suggestedCountryId).
v1.376.0 · 5 ноября 2026 г.
- Изменено:
affiliates.createCoupon(POST /affiliate-coupons),affiliates.updateCoupon(PATCH /affiliate-coupons/{id}) иaffiliates.updateClimateContribution(PUT /affiliate-climate-contribution) требуют праваAFFILIATE_VERWALTUNG(см.GET /organization/entitlements). Без него они отвечают403 feature-not-availableсreasonaffiliate-license, какaffiliates.activity. Исключение:updateCouponсactive: false(выключение) работает и без этого права, так же какaffiliates.deleteCouponиaffiliates.disableTracking. То же правило действует в приложении.
v1.375.0 · 5 ноября 2026 г.
- Новое:
POST /clients/{id}/metabolic-balance-cases/{caseId}/handover/sendотправляет передачу в Metabolic Balance: создаёт клиента и план или берёт существующие, передаёт все разделы и анализ крови, спрашивает MBG, можно ли создать план. Ничего не создаётся. Повторный вызов продолжает и ничего не создаёт дважды. Сначала claritos ищет клиента в аккаунте MBG; совпадение никогда не берётся молча: 409metabolic-balance-duplicateс не более чем пятью кандидатами вextra.candidates, затем выбор черезpatient({ mode: "existing", patientId }или{ mode: "new" }). Затем claritos спрашивает об открытом черновике в MBG, созданном не в этом случае (MBG допускает один на клиента): 409metabolic-balance-draft-existsсextra.draft(planId,createdAt,state), и здесь до любой записи; взять и перезаписать черезoverwriteDraftPlanId, при втором вызове вместе сpatient. Другие причины: 422handover-incomplete(сextra.missing),collection-too-old,metabolic-balance-not-connected; 409case-closed,metabolic-balance-rejected(сextra.providerMessage),metabolic-balance-unavailable. - Новое в передаче (
GET,PATCH,send):mbgс клиентом и планом в MBG (patientId,planId),planStateв наших ключах,canGenerate,checkErrorsкак от MBG,sentAt,outOfGlobalRange;null, пока не отправлено.
v1.374.0 · 5 ноября 2026 г.
- Изменено:
couplings.prospectsRequiredвpipelines.update(PATCH /pipelines/{id}) считается выполненным, как только у интересанта есть любая карточка в пайплайне организации, в любом состоянии (открыта, отложена, закрыта), а не только карточка в этом пайплайне. Просьбу о привязке или, сprospectsAutomatic, карточку получает только интересант совсем без карточки. Так у одного человека не появляется двух карточек. - Изменено: перенос по обязательности (
pipelines.getBackfillиpipelines.startBackfill,GET/POST /pipelines/{id}/backfill) теперь берёт только интересантов без единой карточки в организации; у кого уже есть карточка в другом пайплайне, даже закрытая, тот больше не добавляется.candidatesсчитается так же.
v1.373.0 · 5 ноября 2026 г.
- Импрессум и политика конфиденциальности: дополнения к постоянно формируемому шаблону.
GET /organization/legal-textsуказывает у каждого элементаmode,supplementsиsections(для других видовnull), а такжеdpoNotAppointed. Новое:PUT /organization/legal-texts/{kind}/supplements.DELETE /organization/legal-texts/{kind}отбрасывает собственный текст; дополнения сохраняются, без дополнений как прежде.PATCH /organization/legal-textsпринимаетdpoNotAppointed.isCustomizedпо-прежнему истинно только для собственного текста (то же, чтоmodeown), одни дополнения его не меняют;versionповышается и при изменении дополнений.
v1.371.0 · 5 ноября 2026 г.
- Новое: чтение и подготовка передачи случая в Metabolic Balance.
GET /clients/{id}/metabolic-balance-cases/{caseId}/handoverвозвращает разделы как в портале MB со статусом (ready,unclear,optional,attention), настройки плана, варианты выбора (options: лаборатории, языки, списки MBG), показатели крови с единицей из результатов в написании MBG (без пересчёта) и двумя уровнями (outside-norm,outside-global), свободные ответы анкеты для сопоставления иblockers.PATCHпо тому же пути частично меняет настройки и сопоставления. Свои ключи:dietGoalnone/lose/regulation/gain,healthTriggerв camelCase; идентификаторы Metabolic Balance берутся изoptions. Пока ничего не отправляется.
v1.370.0 · 5 ноября 2026 г.
- Новое:
POST /clients/{id}/metabolic-balance-cases/{caseId}/request-reportповторно запрашивает у клиента результаты анализов. Вызов сразу пишет клиенту по каналу случая, со ссылкой для загрузки; если результаты уже считаны, сообщение называет недостающие обязательные показатели. Если прежний запрос файлов больше не принимает загрузки, создаётся новый (затем вfileRequest). Каждый вызов пишет снова. Ответ 200 со случаем; 409case-closedилиsend-failed, 422case-not-sent,contact-without-email,sender-missing,metabolic-balance-not-connected. - Новое в объекте случая (
GETиPOST /clients/{id}/metabolic-balance-cases):reportс фазой (none,reading,redaction,failed,read),requiredCount,receivedCount,missing,optionalRequested,optionalReceivedв виде{ key, name }(keyкакmarkerKeyвbiomarkers.listProfileItems) иlastRequestedAt. Результаты, связанные во вкладке лаборатории с направлением случая, тоже учитываются.
v1.369.0 · 5 ноября 2026 г.
- Новое: случаи Metabolic Balance в карте клиента.
GET /clients/{id}/metabolic-balance-casesпоказывает случаи с их состоянием (отправка, анкета, результаты анализов, передача, план).POST /clients/{id}/metabolic-balance-casesначинает случай: утверждает направление на анализы из профиля, выдаёт ссылку на анкету и создаёт запрос файлов для результатов (channelemailилиportal). Сообщение клиенту уходит в фоне, как только готовы PDF направления; поэтомуdelivery.sentAtпоявляется позже и читается через GET. Требуются правоMETABOLIC_BALANCE(иначе 403metabolic-balance-license) и подключённый доступ (иначе 422metabolic-balance-not-connected); один открытый случай на карту (409case-open).
v1.368.0 · 5 ноября 2026 г.
- Новое право
METABOLIC_BALANCE(подключение к порталу Metabolic Balance) вGET /organization/entitlementsи в эндпоинтах лицензий. У него нет предварительных условий, оно открывает подключение к порталу в настройках организации; ключ вводится там, а не через API. GET /organization/integrationsпоказывает для бизнес-организаций подключениеmetabolicBalance(настройки вbereich=schnittstellen): без праваMETABOLIC_BALANCEсоstatenot-enabled, иначеnot-connected,faulty(последняя проверка не удалась) илиconnected.
v1.367.0 · 4 ноября 2026 г.
- Новое:
courseIdвlearning.searchCoursesограничивает поиск одним курсом. - Поиск по курсам теперь находит и страницы PDF-файлов урока (
matchIn: "pdfPage") с новым полемlessonMaterialId; для страниц PDF-материала самого урока оно остаётсяnull.
v1.366.0 · 4 ноября 2026 г.
- Типы приёма можно дублировать:
POST /appointment-types/{id}/duplicate(appointments.duplicateType, областьappointments:write, то же право, что иcreateType) создаёт неактивную копию: к названию на каждом сохранённом языке добавляется «(Kopie)», «(copy)» или «(копия)»,slugновый (…-kopie,…-kopie-2); ответ 201 с копией. Копируется настройка вместе с составом и услугами; бренд, форма, сценарий разговора, место, телефон, план напоминаний и ссылка оплаты ссылаются на те же объекты. Приёмы, ссылки для записи и доступ для партнёров не копируются (partnerReleaseNONE). Если оригинал ссылается на сценарий, ссылку оплаты или план напоминаний, которыеcreateTypeне принял бы, возвращается та же ошибка.
v1.365.1 · 4 ноября 2026 г.
- Исправлено:
includeArchived=falseвpipelines.list(GET /pipelines) иpipelines.listSlas(GET /pipelines/slas) раньше тоже возвращал архивные записи (любое непустое значение считалосьtrue). Теперь параметр принимаетtrueилиfalse.
v1.365.0 · 4 ноября 2026 г.
- Курсы могут называть два уровня своей структуры (
levelNames:firstдля модулей,secondдля подмодулей); название задаётся на языке запроса и переводится, как остальные тексты курса;nullили пустая строка возвращает все языки к значению по умолчанию. Названия не содержат номера: портал нумерует сам и только там, где номера нет в названиях.
v1.364.0 · 4 ноября 2026 г.
- Обучающая платформа, курсы:
descriptionиinstructor.descriptionтеперь форматированный текст (HTML; обычный текст по-прежнему допускается и превращается в абзацы) и принимают вlearning.createCourseиlearning.updateCourseдо 20 000 символов вместо 5 000. claritos очищает HTML при сохранении. Поведение: кто до сих пор показывалdescriptionкак обычный текст, теперь видит разметку вроде<p>; перед показом обрабатывайте её как HTML. Импорт курсов (learning.startCourseImport) теперь тоже очищает оба текста при сохранении и превращает обычный текст в абзацы; ограничение в 20 000 символов там не действует. Если текст превышает 20 000 символов только после очистки,createCourse/updateCourseсообщаетtoo_bigу поля.
v1.363.0 · 4 ноября 2026 г.
- Обучающая платформа, папки курсов и курсы в коллекциях: новые конечные точки
learning.listCourseFolders,createCourseFolder,updateCourseFolder,moveCourseFolder,deleteCourseFolder(папки курсов, не более двух уровней, без правила открытия),learning.orderCourseItems(POST/learning/courses/order) иlistCollectionCourses,addCollectionCourse,updateCollectionCourse,removeCollectionCourse(курс плиткой в коллекции; не даёт доступа). Новое у курса:folderId,positionиcollections;learning.updateCourseпринимаетfolderId. Новое у папок коллекций:courseCount;learning.deleteFolderсообщаетmovedCourseCount;learning.orderItemsзнаетtypecourse. Поведение: папки, материалы и плитки курсов одного уровня коллекции теперь делят числа вposition. Импорт не создаёт папок курсов и не перемещает уже упорядоченное.
v1.362.0 · 4 ноября 2026 г.
- Обучающая платформа, поиск по курсам: новая конечная точка
learning.searchCourses(GET/learning/courses/search), дополнение. Ищет в курсах, модулях и уроках (заголовки, описания, имя, строка и текст преподавателя, тексты уроков, речь и страницы PDF их медиа); плоские строки как уlearning.searchContents, сtype(course,module,lesson),modulePathиlessonType; сcontactIdс точки зрения контакта (locked,unlockReasons), без него сdraft.learning.searchContentsостаётся без изменений и НЕ возвращает находок из курсов; кому нужно и то и другое, вызывает оба поиска.
v1.361.0 · 4 ноября 2026 г.
- Обучающая платформа, курсы: у
instructorдва новых поля,jobTitle(строка под именем на карточке в портале, по языкам) иimageAssetId(фото из медиатеки,null= инициалы); в ответе всегда, вlearning.updateCourseнеобязательно. Дерево импорта (learning.startCourseImport) не содержит ни фото, ниjobTitle; последующий импорт оставляет оба как есть. Новое полеrecommendation(«Подходит к этому», не более одной записи,oneOfпоtype: коллекция, другой курс или собственная ссылка с заголовком и изображением), в ответе всегда (nullбез записи), вlearning.updateCourseнеобязательно (nullудаляет её);learning.createCourseего не задаёт. Если цель удалена, запись равнаnull.
v1.360.0 · 4 ноября 2026 г.
- Обучающая платформа, перемотка вперёд: новое поле
allowSeeking(boolean, по умолчаниюtrue) у коллекции (чтение,learning.createCollection,learning.updateCollection) и у курса (чтение,learning.updateCourse). Приfalseпортал разрешает в видео и аудио переход только до самого дальнего уже просмотренного места. Поведение: прогресс за одно сообщение растёт не больше, чем на время с предыдущего сообщения (умноженное на 1,25, плюс 15 секунд); одно сообщение больше не отмечает видео как просмотренное. Приtrue, то есть у всех существующих коллекций и курсов, прогресс ведёт себя как прежде; ограничение действует только приfalse.
v1.359.0 · 3 ноября 2026 г.
- Размер тела запроса для каждой конечной точки:
learning.startCourseImport(POST/learning/course-imports) теперь принимает до 4 МБ (4 194 304 байта), все остальные вызовы по-прежнему до 1 МБ. До сих пор каркас отклонял любое тело больше 1 МБ с413, в том числе при импорте курса, для которого обещано 4 МБ; курс примерно из 250 уроков на этом не прошёл. Каждая операция с телом указывает свой предел в спецификации какx-max-body-bytes, а ответ413(payload-too-large) называет его в полеmaxBodyBytes. Размер считается в байтах (UTF-8), в том числе для запроса безContent-Length.
v1.358.0 · 3 ноября 2026 г.
- Обучающая платформа, материалы урока:
learning.createLessonMaterial(POST/learning/lessons/{id}/materials, 201) прикрепляет файл из медиатеки (безtitleназвание медиафайла, не более 50, сверх тогоconflictсtoo-many-materials),learning.updateLessonMaterialиlearning.deleteLessonMaterial(/learning/lesson-materials/{id}),learning.orderLessonMaterials(POST…/materials/order). Материал из импорта не изменяется (conflict,material-from-import); удалённый вернётся при следующем импорте, добавленные вручную любой импорт оставляет. Новое полеmaterialsв каждом ответе с уроком, всегда присутствует ([]без материалов), у каждого материалаmediaкак у урока.
v1.357.0 · 3 ноября 2026 г.
- Биомаркеры, переименовано до выпуска: поля-счётчики в
biomarkers.listAxes(и в ответахcreateAxis,updateAxis,orderAxes) называютсяdraftEntryCount,lockedEntryCountиruleCountвместоdraftEntries,lockedEntriesиrules, какmarkerCountиruleCountв этой области (1.356.0 не было ни в одной среде).
v1.356.0 · 3 ноября 2026 г.
- Биомаркеры, оси вручную: оси профилей биомаркеров теперь можно вести без импорта файла профиля. Новые
biomarkers.listAxes(GET/biomarker-axes, с числом записей в черновикахdraftEntryCountи в утверждённых, отозванных или принятых профиляхlockedEntryCount, правилruleCount,deletable,deleteBlockedBy),biomarkers.createAxis(POST; безkeyследующий свободный, например «A18»; занятый ключ даёт 409axis-key-taken, ключorderне допускается),biomarkers.updateAxis(PATCH/biomarker-axes/{key}, название и заметка; ключ остаётся),biomarkers.orderAxes(PUT/biomarker-axes/order, каждый ключ ровно один раз, возвращает упорядоченный список) иbiomarkers.deleteAxis(DELETE; записи в черновиках теряют ось; 409axis-in-locked-profile, пока её называет утверждённый, отозванный или принятый профиль,axis-in-rule, пока её использует правило). Для записей:biomarkers.listProfileItems(GET/biomarker-profiles/{id}/items, маркер, пол,axisKey,familyKey,assignment) иbiomarkers.setItemAxis(PUT/biomarker-profiles/{id}/items/{itemId}/axis, только в собственных черновиках, иначе 409profile-not-draftилиprofile-licensed;axisKey: nullснимает привязку; возвращает запись, какlistProfileItems); изменение ставитassignmentвACHSE_FESTGELEGT.
v1.355.0 · 3 ноября 2026 г.
- Обучающая платформа, курсы в доступе:
learning.setAccessCourses(PUT/learning/accesses/{id}/courses) задаёт курсы доступа, заменяет список в переданном порядке и не трогает подборки; неизвестный курс даётnot-foundвbody.courseIds, без права на курсыfeature-not-available. Новое полеcourseIdsв ответах доступа и выдачи, всегда присутствует ([]без курсов), и необязательно вlearning.createAccess(пустой список не требует права). Черновики и архивные курсы как у подборок. События без изменений.
v1.354.0 · 3 ноября 2026 г.
- Обучающая платформа, создание курса:
learning.createCourse(POST/learning/courses, 201) создаёт пустой курс, черновиком с открытием сразу и безsource; последующий импорт его не затрагивает. Поляtitle(обязательно),description,typeиselfPacedStartкак вlearning.updateCourse, ответ как уlearning.getCourseс пустой структурой.
v1.353.0 · 3 ноября 2026 г.
- Разговоры, ответственный и привязка:
inbox.listConversationsиinbox.getConversationтеперь содержатassigneeUserId, ответственного (участник организации; только пока он участник), иrelatedTo, к чему относится разговор, как объединение поtype. Сейчас есть только{ type: "lesson", courseId, lessonId }: вопрос, который клиент задал по уроку в портале; ответственный тогда преподаватель курса (responsibleUserId, 1.352.0). Если курс или урок удалён, тамnull. Без ответственного или привязки оба поля равныnull, то есть у всех прежних разговоров. Новый фильтрassigneeUserIdвinbox.listConversations,assigneeUserId=noneдля разговоров без ответственного. Назначение ответственного появится в одной из следующих версий.
v1.352.0 · 3 ноября 2026 г.
- Обучающая платформа, преподаватель курса: у курсов есть
responsibleUserId, участник организации, которому приходят вопросы из портала по урокам этого курса (assigneeUserIdразговора);null= никто. Задаётся черезlearning.updateCourse; не участник даётnot-foundвbody.responsibleUserId. Если человек покидает организацию, значение остаётся, но считается как никто. Не зависит отinstructor(отображаемого преподавателя). - Лицензия, поведение (спецификация не меняется): для лицензий с версией (
model: version) правоLIVE_RAUMтеперь следует из уровня видео организации (включён, забронирован или как отдельное исключение у тенанта со Start); отдельное разрешение у организации больше не нужно. Версии больше не показываютLIVE_RAUMвchoiceListи как бронируемый модуль (bookable); это действует при чтении для каждой версии, в том числе уже опубликованной, а бронирование модуля отклоняется (conflict,reasonrejected). Новые сохранённые версии его тоже не содержат. Бронируются уровни видео. Лицензии без версии (model: existing) не меняются.
v1.351.0 · 3 ноября 2026 г.
- Лицензия, уровни видео с названием и версией: рядом с ключом (
tier) теперь название на языке запроса (tierName; собственные уровни со своим названием,START,PLUS,PROс постоянным текстом) вorganization.getLicenseChoices(также в ответахsetLicenseChoicesиsetVideoTier:video.tierName,video.booked[].tierName),organization.getLicense(modules[].tierName,bookable[].tierName,perOrganization[].videoTierName) и в предпросмотре смены периода (modules[].tierName). Номер версии уровня указан там, где организация видит свой уровень:video.tierVersionNumber,perOrganization[].videoTierVersionNumber, а вbookable[]версия, которую сегодня получило бы новое бронирование (tierVersionNumber). Ключ собственного уровня создаётся из его первого названия и потом не меняется, поэтому показывайте название.
v1.350.0 · 3 ноября 2026 г.
- Переписки: новый канал
portal(channelвinbox.listConversationsиinbox.getConversation, фильтрchannel=portal,channels.portalвinbox.getConversationCounts). Он охватывает сообщения в клиентском портале в разделе «Общение», по одной переписке на цепочку; защищённая почта карты не появляется.subjectэто тема цепочки,counterpartравенnull, сообщения в истории содержат HTML. Клиенты, которые ветвятся поchannel, получают новое значение.
v1.349.0 · 3 ноября 2026 г.
- Обучающая платформа, текст с пропусками и пул вопросов:
typeвопроса теста получает значениеblanks(текст с пропусками); клиентам, которые ветвятся по типу, нужна для него ветка. Новое у вопроса:blanks(для каждого пропускаanswers, допустимые ответы;nullдляsingleиmultiple, дляblanksoptionsпуст). Пропуски стоят в тексте как {{1}}, {{2}} …, начиная с 1; сравнение без учёта регистра, пробелы объединяются.learning.createQuestionиlearning.updateQuestionпринимаютtypeblanksсblanks(от 1 до 20 пропусков, по 1–10 ответов до 100 символов); метки, не соответствующие пропускам, даютinvalidвbody.blanks, пропуск без ответа —requiredвbody.blanks[i].answers, слишком много или слишком длинные ответы —too-large.PUT /learning/questions/{id}/answersдля текста с пропусками даётwrong-typeвparams.id. Новое у теста:questionsPerAttempt(пул вопросов: столько вопросов каждая попытка выбирает случайно,nullвсе; при сохранении не больше, чем вопросов в тесте, иначеinvalidвbody.questionsPerAttempt; если позже вопросы удалят, каждая попытка берёт все). Импорт иgetCourseMissingостаются сsingleиmultiple.
v1.348.0 · 3 ноября 2026 г.
- Обучающая платформа, расширенный тест: у теста урока (
learning.updateQuiz, читается у урока) новыеmaxAttempts(максимум попыток на человека, от 1 до 100,nullбез ограничения; сброшенные не учитываются),timeLimitMinutes(от 1 до 600,nullбез ограничения; считается на сервере с «Начать тест» в портале, после истечения и небольшого допуска отправка считается несданной) иshowSolution(neverпо умолчанию как раньше,afterSubmit,afterPass: когда портал показывает правильные ответы). Вне границ —invalidвbody.maxAttemptsилиbody.timeLimitMinutes.learning.getCourseParticipantсодержит для каждого урока-тестаquizсattemptCount,lastScore,passed,remainingAttempts(иначеnull). НовыйPOST /learning/courses/{id}/participants/{contactId}/lessons/{lessonId}/quiz-attempts/reset(learning.resetQuizAttempts): попытки остаются в истории, но больше не учитываются; текущая попытка завершается; урок, не являющийся тестом, даётwrong-typeвparams.lessonId.
v1.347.0 · 3 ноября 2026 г.
- Сертификаты и PDF-шаблоны: новый вид поля
TRIGGER_VALUEвpdfFieldKind(templates.*,letters.getIssued) для значения, которое процесс передаёт при выдаче;bindingсейчас толькоcourse.title, название курса при его завершении на учебной платформе. При выдаче вручную такое поле остаётся пустым. Клиенты, которые ветвятся поkind, получают новое значение. У сертификата новыеsourceKind(COURSE_COMPLETION) иsourceId(idизlearning.listCompletionsилиcompletionIdизlearning.course.completed), если его выдал процесс без вошедшего в систему человека, иначе обаnull. Одно завершение даёт не более одного сертификата.
v1.346.0 · 3 ноября 2026 г.
- Обучающая платформа, участники:
GET /learning/courses/{id}/participants(learning.listCourseParticipants, по имени, фильтрactiveкакtrue/false, сlessonCount,completedLessonCount,progressPercent,lastActivityAt,completedAt,grantIdдействующей выдачи) иGET /learning/courses/{id}/participants/{contactId}(learning.getCourseParticipant: для каждого урокаstatuscompleted/open/locked,completedAt,completedManually,unlocksAt,unlockReasons, а такжеinterventions). Отметить вручную:POST …/participants/{contactId}/lessons/{lessonId}/completeсreason(learning.completeParticipantLesson, уже пройденный остаётся без изменений) и…/reopen(learning.reopenParticipantLesson, только отмеченные вручную, иначе 422precondition-failedсreasonnot-manual). Вмешательства в личное расписание (в том числе для библиотеки):POST /learning/grants/{id}/interventions(learning.createIntervention, 201, объединение поtype:pauseсstartDate/endDate,moveсtargetType/targetId/date,releaseNowсtargetType/targetId,extendEndсendDate;reasonобязательна; раздел, не относящийся к выдаче, даётnot-foundвbody.targetId),GET /learning/grants/{id}/interventions(learning.listInterventions) иPOST /learning/interventions/{id}/revoke(learning.revokeIntervention, можно повторять).GET /learning/courses/{id}/progress(learning.getCourseProgress): для каждого урокаstartedCountиcompletedCount, а такжеparticipantCount.unlockReasonsприafterItemтеперь содержатtargetType.
v1.345.0 · 3 ноября 2026 г.
- Обучающая платформа, завершение и сертификат: у курса (
learning.getCourse, записывается черезPATCH /learning/courses/{id}) новоеcompletionRuleсrequiredLessons(allвсе уроки, кроме черновиков,selectedтолькоrequiredLessonIds) иminAttendancePercent(от 1 до 100 % уроков-занятий с округлением вверх; приallзанятия тогда учитываются через долю;nullбез требования), задано всегда, в PATCH заменяет всё правило; а такжеcertificateTemplateId(PDF-шаблон,templates.getPdf). Урок вне курса даётnot-foundвbody.completionRule.requiredLessonIds[i], процент вне диапазонаinvalid, неизвестный шаблонnot-found, отключённыйinvalidвbody.certificateTemplateId. НовыйGET /learning/completions(learning.listCompletions): завершения, сначала изменённые последними, фильтрыcourseId,contactId,updatedSince, сcertificate(statusnone/pending/issued/failed,issuedDocumentIdчитается черезletters.getIssued,failureReason). Новое событиеlearning.course.completed(один раз для участника и курса). Если у курса есть шаблон, сертификат выдаётся при завершении (statusissuedсissuedDocumentId, при ошибкеfailedсfailureReason); если команда задаёт шаблон, завершения без сертификата получают его задним числом. - Автоматизации: триггеры
learning.course.completed,learning.submission.submittedиlearning.submission.reviewedможно ограничить курсами (фильтрcourseId, видcourse, «один из»), например чтобы запускать следующий шаг только при завершении определённого курса.
v1.344.0 · 3 ноября 2026 г.
- Обучающая платформа, работы:
GET /learning/submissions(learning.listSubmissions) перечисляет работы участников в уроках типаassignment, сначала изменённые последними, с фильтрамиcourseId,lessonId,contactId,status(submitted,returned,accepted) иupdatedSince; черновики никогда.GET /learning/submissions/{id}(learning.getSubmission) возвращает сданные попытки с текстом, файлами (documentId,filename,mimeType,sizeBytes; скачать черезGET /documents/{id}/download-url) и отзывом на каждую попытку.POST /learning/submissions/{id}/feedback(learning.createSubmissionFeedback, 201) даёт отзыв на последнюю сданную попытку:resultacceptedзавершает урок,returnedвозвращает работу,gradeпо желанию; без сданной попытки 422precondition-failedсreasonnot-submitted, если отзыв уже есть,already-answered. Новые событияlearning.submission.submittedиlearning.submission.reviewed. - Автоматизации: триггер
learning.submission.reviewedможно фильтровать по результату отзыва (result:accepted,returned), например чтобы запускать следующий шаг только для принятых работ.
v1.343.0 · 3 ноября 2026 г.
- Обучающая платформа, типы курсов:
type(selfPaced,class) теперь можно задать вPATCH /learning/courses/{id}(learning.updateCourse); новое полеselfPacedStart(accessс доступом, по умолчанию;firstOpenпри первом открытии в портале), читается у курса и записывается. Действует только приselfPacedи сохраняется у курса для класса; курс для класса начинается в общий день старта класса, через который пришёл участник, а без даты старта класса с доступом. «С дня n» иimmediatelyсчитаются от этого старта; старт в будущем закрывает доступ до него. - Обучающая платформа, уроки-занятия:
POST /learning/courses/{id}/lessons(learning.createLesson) принимаетtype: "appointment";appointmentIdвcreateLessonиPATCH /learning/lessons/{id}(learning.updateLesson,nullубирает его); для урока другого типаinvalid, встреча, которой нет в организации,not-found, каждый раз вbody.appointmentId. НовыеGET /learning/lesson-appointments/options(learning.lessonAppointmentOptions: активные виды встреч сkindиcapacity, действующие серии) иGET /learning/lesson-appointments(learning.listLessonAppointments: встречи для выбора, ровно один изappointmentTypeIdиrecurrenceId, без нихrequired, обаinvalid; сначала предстоящие, постранично черезcursor). В правилах курса теперь можно выбратьafterAppointment; встреча вне организации даётnot-foundвbody.rule.conditions[i].appointmentId.
v1.342.0 · 3 ноября 2026 г.
- Классы, общий старт:
GET /contact-lists,GET /contact-lists/{id},POST /contact-listsиPATCH /contact-lists/{id}содержатstartDate, общий старт класса как календарный деньyyyy-mm-ddв часовом поясе организации (null: старт ещё не задан); курсы платформы обучения для этого класса начинаются в этот день.PATCH /contact-lists/{id}(contacts.updateList) теперь принимает{ name?, startDate? }, хотя бы одно из двух (иначеvalidation-failedсrequired);startDate: nullудаляет старт, несуществующий день или год вне диапазона 2000–2100 даютvalidation-failedдляbody.startDate, и тогда название тоже не меняется. У подгрупп старта нет.
v1.341.0 · 2 ноября 2026 г.
- Обучающая платформа, правила доступа для элементов курса:
ruleиdisplayвPATCH /learning/courses/{id}(learning.updateCourse; у курса всегда заданы, по умолчанию сразу),PATCH /learning/modules/{id}иPATCH /learning/lessons/{id}(learning.updateModule,learning.updateLesson;null= собственного нет, действует правило уровнем выше) и в их ответах;hasOwnRuleу модулей и уроков вlearning.getCourse. В курсеafterItemуказывает наmoduleилиlesson, аafterQuiz.quizIdэто идентификатор урока типаquiz. Ссылка, которой нет в курсе, даётnot-found, элемент, ждущий сам себя или то, что под ним,cycle, урок другого типа вafterQuizwrong-type, каждый раз вbody.rule.conditions[i].POST /learning/releases/preview(learning.previewRule) вместоcollectionIdпринимает иcourseId(сmoduleIdилиlessonId); ровно одно из двух. - Схема условия общая и становится шире:
afterItem.targetTypeтеперь знает такжеmoduleиlesson. Правила подборки, её папок и материалов никогда не содержатmodule/lesson(там они отклоняются сinvalidвbody.rule.conditions[i].targetType), правила курса никогда не содержатcollection/content. Эндпоинты выдачи доступа (targetTypeвlistReleases,release,withdrawRelease) остаются сcollection/content.
v1.340.0 · 2 ноября 2026 г.
- У типов встреч в
liveRoomтеперь естьwaitingRoom(AUTO,ON,OFF; по умолчаниюAUTO): зал ожидания в live-комнате claritos. Все, кроме ведущего и со-модераторов, ждут, пока встреча не начнётся в прямом эфире.AUTOоставляет решение live-комнате по типу: включён для занятий и групповых встреч, иначе выключен. Если поле не указано в PATCH, сохранённое значение остаётся. Действует при каждом входе, то есть и для уже забронированных встреч; если ведущий переключит его в комнате, это важнее. Чтение вappointments.getType/listTypes, запись вcreateType/updateType.
v1.339.0 · 2 ноября 2026 г.
- Обучающая платформа: курс из GoHighLevel теперь можно импортировать в интерфейсе и как подборку библиотеки; каждый урок становится открытой записью, пока не назначен файл. Новое:
GET /learning/collections/{id}/missing(learning.getCollectionMissing, открытые и закрытые записи сpathиexpectedType),PUT /learning/collection-entries/{id}/media(learning.setCollectionEntryMedia, создаёт материал; идемпотентно для того же файла,409для другого,wrong-typeилиmedia-not-readyвbody.assetId),POST /learning/collection-entries/{id}/dismissи/reopen(learning.dismissCollectionEntry,learning.reopenCollectionEntry,204). - Запуски импорта курсов (
learning.getCourseImport,learning.listCourseImports,learning.startCourseImport) теперь содержатtargetType(courseилиcollection) иcollectionId. Запуск теперь может быть и подборкой (только из импортёра GoHighLevel в интерфейсе): тогдаcourseIdпуст, хотя запуск не завершился ошибкой, аmissingVideosсчитает открытые записи.listCourseImportsфильтрует поtargetType; для подборок событийlearning.courseImport.*нет.
v1.338.0 · 2 ноября 2026 г.
- Обучающая платформа, структура курса: модули через
POST /learning/courses/{id}/modules(learning.createModule),PATCH /learning/modules/{id}(learning.updateModule),POST /learning/modules/{id}/move(learning.moveModule),DELETE /learning/modules/{id}(learning.deleteModule; безcascadeподмодули и уроки перемещаются на уровень выше, с?cascade=trueудаляются, ответ сmovedLessonCount,movedModuleCount, приcascadeтакжеdeletedLessonCount,deletedModuleCount),POST /learning/courses/{id}/modules/order(learning.orderModules). Уроки черезGET/PATCH/DELETE /learning/lessons/{id}(learning.getLesson,learning.updateLesson,learning.deleteLessonс204),POST /learning/courses/{id}/lessons(learning.createLesson),POST /learning/lessons/{id}/move(learning.moveLesson),POST /learning/courses/{id}/lessons/order(learning.orderLessons). Тест черезPATCH /learning/lessons/{id}/quiz(learning.updateQuiz:passMark,passedText,failedText),POST /learning/lessons/{id}/questions(learning.createQuestion),PATCH/DELETE /learning/questions/{id}(learning.updateQuestion,learning.deleteQuestionс204),POST /learning/lessons/{id}/questions/order(learning.orderQuestions). Третий уровень модулей возвращаетvalidation-failedсcodetoo-deepвbody.parentId, неподходящие ответы —invalidвbody.options. - Исправлено:
includeArchived=falseвlearning.listAccesses,learning.listCollections,learning.listContentsиlearning.listCoursesраньше тоже возвращал архивные записи (любое непустое значение считалосьtrue). Теперь параметр принимаетtrueилиfalse.
v1.337.0 · 2 ноября 2026 г.
- Обучающая платформа, курсы: новые эндпоинты
GET /learning/courses(learning.listCourses),GET/PATCH /learning/courses/{id}(learning.getCourseсо структурой,learning.updateCourse),POST /learning/courses/{id}/publish(learning.publishCourse; если не хватает видео или правильных ответов,422сreasoncourse-incomplete,missingVideoCount,missingAnswerCount, исправляется черезconfirmIncomplete: true),POST /learning/courses/{id}/archiveи/unarchive,GET /learning/courses/{id}/missing(learning.getCourseMissing),PUT /learning/lessons/{id}/media(learning.setLessonMedia,409, если медиафайл уже есть) иPUT /learning/questions/{id}/answers(learning.setQuestionAnswers,correctIndexesкак позиции с 0).
v1.336.0 · 2 ноября 2026 г.
- Обучающая платформа, импорт курса: claritos теперь загружает файлы импорта (изображения, видео, аудио, материалы) в медиатеку. Новое в каждой записи
files[](GET /learning/course-imports/{id},learning.listCourseImports):failureReason(только приfailed:not-https,blocked-network,too-large,timeout,wrong-type,source-error,invalid-url,dns-failed,too-many-redirects,connection-aborted,empty,internal-error),httpStatus(только приsource-error) иassetId(приdone). Новоеcounts.filesPending, также в событииlearning.courseImport.completed: файлы поступают после этого события,filesPending> 0 означает, что загрузка ещё идёт. Видео и аудио до 2 ГиБ, остальное до 200 МБ.
v1.335.0 · 2 ноября 2026 г.
- Обучающая платформа, классы в доступе: новые эндпоинты
GET /learning/accesses/{id}/contact-lists(learning.getAccessContactLists) иPUT /learning/accesses/{id}/contact-lists(learning.setAccessContactLists, полный наборcontactListIds, ответ сgrantedCountиrevokedCount). Выбранный класс выдаёт доступ всем текущим участникам (sourceclass), убранный завершает только эти выдачи (событиеlearning.access.endedсreasonclass); выдачи из других источников сохраняются. Новое полеcontactListIdsу доступа.learning.listAccessesтеперь также возвращаетnotifyOnGrant, как и запрос одного доступа.
v1.334.0 · 2 ноября 2026 г.
- Обучающая платформа, папки в подборках (два уровня: папка и подпапка): новые эндпоинты
GET/POST /learning/collections/{id}/folders(learning.listFolders,learning.createFolder),PATCH/DELETE /learning/folders/{id}(learning.updateFolder,learning.deleteFolderсmovedContentCountиmovedFolderCount; материалы и подпапки поднимаются на уровень выше),POST /learning/folders/{id}/move(learning.moveFolder) иPOST /learning/collections/{id}/items/order(learning.orderItems, папки и материалы одного уровня). Новое полеfolderIdу материалов (чтение,createContent,addContents,updateContent;null= верхний уровень),folderPathу результатов поиска иfolderIdвlearning.previewRule. Третий уровень отклоняется с кодомtoo-deep.learning.orderContentsпо-прежнему упорядочивает только переданные материалы.
v1.333.0 · 2 ноября 2026 г.
- Новое: ключи доступа контакта к клиентскому порталу
GET /contacts/{id}/portal-passkeys(contacts.getPortalPasskeys,contacts:read):passkeyCount,lastUsedAtи для каждого ключаdata[]сid(идентификатор записи в claritos, а не идентификатор учётных данных),label(поставщик или устройство),createdAt,lastUsedAt. Открытые ключи и идентификаторы учётных данных API никогда не выдаёт. ТакжеDELETE /contacts/{id}/portal-passkeys(contacts.removePortalPasskeys,contacts:write): удаляет все ключи доступа, например после потери телефона; затем человек снова входит с кодом. Ответ{ removedCount }со статусом 200, без ключейremovedCount: 0; неизвестный контактnot-found.
v1.332.0 · 2 ноября 2026 г.
- Беседы, тон: каждая беседа в
GET /inbox/conversationsиGET /inbox/conversations/{id}содержитsentiment(positive,neutral,negative,null= ещё не оценено), тон последнего оценённого входящего письма. Новый фильтрsentiment(positive,neutral,negative,none= ещё не оценено); он устанавливает каналemail, потому что SMS никогда не оцениваются.GET /inbox/conversation-countsдополнительно возвращаетsentiments{ positive, neutral, negative, none }по открытым беседам по email.
v1.331.0 · 2 ноября 2026 г.
- Обучающая платформа, импорт курса: новые эндпоинты
POST /learning/course-imports(learning.startCourseImport, 202),GET /learning/course-imports/{id}(learning.getCourseImport) иGET /learning/course-imports(learning.listCourseImports, фильтрыsourceSystem,sourceCourseId). Программа отправляет курс целиком (модули, подмодули, уроки, тесты с правильными ответами; файлы адресом), claritos импортирует его в фоне как черновик; повторный импорт из того же источника дополняет его. Новые событияlearning.courseImport.completedиlearning.courseImport.failed(сreason).
v1.330.0 · 2 ноября 2026 г.
- Обучающая платформа, несколько материалов сразу: новый эндпоинт
POST /learning/collections/{id}/contents(learning.addContents) сassetIds(от 1 до 50 файлов медиатеки). Для каждого файла создаётся неопубликованный материал в конце подборки, в порядкеassetIds; название берётся из имени файла в медиатеке. Ответ 201{ created, failed }; ошибка с одним файлом не останавливает остальные,failedназывает причину для каждого файла (not-found,media-not-ready,limit-reached,failed).
v1.329.0 · 2 ноября 2026 г.
- Обучающая платформа, письмо о новом доступе: каждый доступ содержит
notifyOnGrant(по умолчанию включено, задаётся вPOST /learning/accessesиPATCH /learning/accesses/{id}). Если оно включено, контакт получает письмо со ссылкой на портал, как только доступ начинает для него действовать. Каждая выдача также содержитaccessEmailStatus(pending,sent,skipped,failed),accessEmailSkipReason(приskipped:disabled,alreadyActive,noEmail,companyWithContacts,ambiguousEmail,beforeIntroduction) иaccessEmailAt.
v1.328.0 · 2 ноября 2026 г.
- Обучающая платформа, записи без полного согласия на курс:
POST /learning/contentsс документом живого сеанса, на который согласились не все участники, отвечает 422precondition-failedсreasonrecording-consent-incomplete,consentedCount,participantCountиfixable: true; с новым полемconfirmIncompleteConsent: trueматериал создаётся, а подтверждение фиксируется. Каждый материал также содержитconsentConfirmation(nullилиconfirmedAt,consentedCount,participantCount,confirmedByUserId,confirmedByApiKeyId).
v1.327.0 · 2 ноября 2026 г.
- Обучающая платформа, поиск:
GET /learning/contents/search(qот 2 до 100 символов,limitот 1 до 100, без постраничного вывода). Результаты в названии, описании, речи (positionMs) и страницах PDF (pdfPage), полеmatchIn,excerpt. СcontactIdтолько то, что видит этот контакт, заблокированные результаты сlockedиunlockReasons; без него вся библиотека, включая черновики (draft). Слишком короткий запрос: 422validation-failedвquery.q.
v1.326.0 · 2 ноября 2026 г.
- Обучающая платформа, материал после занятия:
GET/PUT /appointment-types/{id}/learning-material(список из библиотеки, который открывается в конце каждого приёма этого вида,recordingCollectionIdдля записи как черновика,attendeesOnly),GET/PATCH /appointments/{id}/learning-material(add,hide, отличающийсяattendeesOnly,withheld; ответ сreleasedAtиrecipientCount) иPOST /appointments/{id}/learning-material/release(открыть сейчас; при «только присутствовавшие» без измерения 422precondition-failed,reasonattendance-not-measured). Открытия сообщаются черезlearning.content.releasedсsourceappointment.
v1.325.0 · 2 ноября 2026 г.
- Обучающая платформа: у подборок есть
notifyDelivery— настройка команды для уведомлений участникам (bellOnly,push,emailNow,emailDaily,emailWeekly,sms;null— настройка claritos, то есть недельный обзор). Чтение вGET /learning/collections, запись черезPOST /learning/collectionsиPATCH /learning/collections/{id}. Колокольчик в портале добавляется всегда; каждый участник может изменить это для себя. Приnotify: falseполе не учитывается.
v1.324.0 · 2 ноября 2026 г.
- Обучающая платформа: вся библиотека через API. Подборки (
GET/POST /learning/collections,PATCH /learning/collections/{id},…/publish,…/archiveи…/unarchive,POST /learning/collections/order) с правилом открытияrule(matchallилиany, не более пятиconditions:immediately,afterDays,fromWeek,onDate,afterItem,afterQuiz,afterAppointment,fromLevel,manual), показомdisplayи срокомduration. Материалы (GET /learning/collections/{id}/contents,POST /learning/contentsиз медиатекиassetId, документа или ссылки https,PATCH,…/mediaдля новой версии,…/publish,…/archive,…/unarchive, порядок) с использованиемreleasedTo/seenBy. Создание и ведение доступов (POST /learning/accesses,PATCH,…/archive,…/unarchive,PUT …/collections). Открытия:GET /learning/releases,POST /learning/releases(вручную),POST /learning/releases/withdraw,POST /learning/releases/preview(расчёт правила заранее, ничего не записывает). Доступы артикула:GET/PUT /articles/{id}/learning-accesses.
v1.323.0 · 2 ноября 2026 г.
- Новое: переписки, цепочки писем и истории SMS в одном списке.
GET /inbox/conversationsфильтрует по представлению (open,starred,closed), каналу, почтовому ящику, непрочитанным, тегу контакта или группе тегов (contactTagModeany/all), кампании (campaignId: ответы после отправки, как в отчёте кампании) и поиску;sortwaitingставит первыми тех, кто ждёт дольше всех (waitingSince); листание черезcursorиlimit, как везде.GET /inbox/conversations/{id}возвращает историю,POST /inbox/conversations/updateустанавливает сразу для многихread,unread,star,unstar(для лица, стоящего за ключом), а такжеcloseиreopen(для всех), сresultsдля каждого идентификатора (updated,notFound),GET /inbox/conversation-countsдаёт числа по представлениям, каналам, ящикам, тегам контактов и кампаниям,PUT /inbox/conversations/{id}/contactназначает контакт.inbox.listThreadsи связанные эндпоинты не меняются.
v1.322.0 · 2 ноября 2026 г.
- Новое в автоматизациях: два действия платформы обучения. «Предоставить доступ к платформе обучения» вызывает
POST /learning/grants, «Отозвать доступ к платформе обучения» вызываетPOST /learning/grants/revoke; второе отзывает только доступы, выданные вручную, через API или автоматизацией, доступы из покупки или класса остаются.GET /automation-catalogуказывает оба, полеaccessIdс источникомlearningAccess. Кроме того, событияlearning.access.grantedиlearning.access.endedпередают дни доступа какgrant.startDateиgrant.endDate, как доступ вGET /learning/grants.
v1.321.0 · 2 ноября 2026 г.
- Новая область
learning(обучающая платформа, праваlearning:readиlearning:write):GET /learning/accessesперечисляет доступы,GET /learning/grantsвыдачи контакта или доступа,POST /learning/grantsвыдаёт доступ (можно повторять; через API с источникомapi, из автоматизации с источникомautomation),POST /learning/grants/{id}/revokeотзывает его с причиной,POST /learning/grants/revokeотзывает доступ у контакта. Отзываются только выдачи, созданные вручную, через API или автоматизацией; выдачи из покупки или класса отвечают 422precondition-failedсreasongrant-source-protected. Требует права организацииLERN_BIBLIOTHEK, иначе 403feature-not-available.
v1.320.0 · 2 ноября 2026 г.
- Новое: три события платформы обучения для вебхуков и автоматизаций.
learning.access.granted, когда контакт получает доступ, из любого источника (grant.source:manual,api,automation,purchaseилиclass).learning.access.ended, когда доступ действительно заканчивается, при отзыве или по истечении срока, в том числе позднее, сgrant.endedAtиgrant.reason(manual,api,automation,payment,cancelled,ended,classилиexpired).learning.content.released, когда подборка или материал становится доступным контакту (release.targetTypecollectionилиcontent,release.sourcerule,appointmentилиmanual). Одно событие на контакт; полезная нагрузка содержит идентификаторы, названия и время, без прогресса обучения. События отправляются, как только платформа обучения начнёт работу.
v1.319.0 · 2 ноября 2026 г.
- Три новых права для обучающей платформы в
GET /organization/entitlementsи в эндпоинтах лицензий:LERN_BIBLIOTHEK(библиотека),LERN_KURSE(курсы) иLERN_COMMUNITY(сообщество). У них нет предварительных условий; эндпоинты самой обучающей платформы последуют. DELETE /articles/{id}теперь также отвечает 409in-use, если покупка товара даёт доступ к обучающей платформе (usage.learningAccesses).
v1.318.0 · 1 ноября 2026 г.
- Новое: ответы из CRM через домен SendGrid.
PUT /sendgrid/domains/{id}/crm-repliesсenabledвыбирает домен с готовым разделом ответов (не более одного; другой домен теряет выбор) или снимает выбор; у домена есть полеcrmReplies. Адрес для ответа на письма из контакта тогда — отправитель перед @ на хосте ответов (собственное имя отправителя, иначе часть его адреса отправителя перед @, только если однозначно, иначе адрес для ответов организации); ответ попадает к этому человеку. Без готового раздела ответов 422precondition-failedсreasonsendgrid-replies-not-set-up; в production до дополнения политики конфиденциальностиreasonsendgrid-personal-not-released.
v1.317.0 · 1 ноября 2026 г.
- Новое: внесение согласия на напоминания о встречах
POST /contacts/{id}/reminder-service/subscribe(contacts.subscribeReminders,contacts:write), пара кcontacts.unsubscribeReminders, например для согласия, полученного при онбординге до первой встречи. Тело:channels(email,sms; без указания оба, если у контакта есть значение) иnote(обязательно, как было дано согласие). Ответ как уgetReminderServiceплюсrevocationKept: каналы, от которых контакт отказался сам; там ничего не вносится. Действующее лицо сохраняется в записи; без негоno-acting-user; без значения у контактаvalidation-failed.
v1.316.0 · 1 ноября 2026 г.
- Изменено, спецификация та же:
conversation.sendEmail,conversation.getComposeOptionsиconversation.checkPermissionработают и для контакта с картой клиента без разрешения на данные клиентов (раньше 404not-found). Письмо является обычным письмом переписки и попадает в общие исходящие; сообщения в карту клиента тогда недоступны. Историю переписки такого контакта (conversation.list,getEntry,getReplyBasis) по-прежнему читает только тот, у кого есть разрешение.qвGET /outbound-emailsищет каждое слово отдельно в теме, адресе получателя и имени контакта, которому ушло письмо, умлауты также в написании с e. Рассылки: новая рассылка начинается с выключенной защитой клиентов (clientProtection.enabledfalse);POST /email-campaigns/{id}/client-protectionсenabled: falseтребует данных клиентов иclients:read, только если письма рассылки уже находятся в разделе клиентов.
v1.315.0 · 1 ноября 2026 г.
- Новое: со-модераторы групповых встреч.
POST /appointments/{id}/co-moderators/checkперед приглашением показывает для каждой встречиfree,busyилиalready;POST /appointments/{id}/co-moderatorsприглашает сотрудника (userId) или контакт (contactId),scopeappointmentилиseries(эта и все следующие встречи серии; последующие встречи серии получают его автоматически), занятые и уже приглашённые встречи перечислены вskipped;POST /appointments/{id}/co-moderators/removeотзывает приглашение (removed). Со-модератор получает собственное приглашение с файлом календаря и ссылкой, в live-комнате claritos он со-ведущий с момента входа и не занимает место; время сотрудника с ресурсом резервируется. 422co-moderator-without-email,not-a-group-appointment,appointment-not-open. Участники содержатisCoModerator(sidePROVIDER);hostsи фильтрcontactIdвGET /appointmentsне учитывают со-модераторов.
v1.314.0 · 1 ноября 2026 г.
- У типов встреч появилось поле
practiceRelevant(по умолчаниюfalse): относится ли тип встречи к работе практики? Только тогда его письма в организации с практикой попадают в исходящие раздела клиентов, иначе в общие исходящие (letters.listEmails). Чтение вappointments.getType/listTypes, запись вcreateType/updateType. При переключении уже отправленные письма переносятся. Выключение только с доступом к данным клиентов (clients:read, разрешено для API), иначе 403forbiddenсreasonpractice-off-needs-client-access. Изменено, спецификация та же: встречи по телефону, в практике или с выездом на дом больше не получают видеокомнату;meetingUrlтам остаётся пустым.
v1.313.0 · 1 ноября 2026 г.
- Изменено в языке правил, спецификация та же: имя в формуле, которое является основным названием ровно одного лабораторного показателя, означает этот показатель, даже если другие показатели содержат его как поисковый термин (
{{Kreatinin}}— креатинин сыворотки, больше неmehrdeutigerName). Два показателя с одинаковым основным названием остаются неоднозначными.formulaв ответах о правилах содержит имя, только если при чтении оно ведёт к той же цели, иначе идентификатор ({{loinc:2160-0}},{{G-A1-01}}); каждуюformulaможно отправить обратно без изменений. Лабораторные показатели типа индекс или отношение без собственной единицы в формулах без единицы ({{HOMA-IR}} >= 2,5); раньше подпись системного каталога считалась единицей и возвращалосьeinheitFehlt.
v1.312.0 · 31 октября 2026 г.
- Новое в автоматизациях: фильтр по ответу в форме для триггера
forms.response.submitted. Вtrigger.filterдля этого указываетсяresponse.answers.‹поле›со значением ключа варианта ответа; поле и вариант такие же, как вGET /forms/{id}/analysis(поле имеет видвид:идентификатор, напримерdef:…илиstd:…). Фильтр срабатывает, если ответ содержит вариант, при множественном выборе также наряду с другими; да/нет передаются какtrueилиfalse. Не более десяти таких записей на правило, совпасть должны все.GET /automation-catalogуказывает фильтр сkindformAnswerиpathresponse.answers. Анкеты карты клиента не передают ответы, там фильтр никогда не срабатывает.
v1.311.0 · 31 октября 2026 г.
- Изменено:
DELETE /appointments/{id}/participants/{contactId}удаляет и последнего участника занятия или группового приёма «только внутренний»; приём остаётся со свободными местами. Раньше здесь возвращалосьlast-participant(на мероприятии последний и раньше мог уйти). Исключённый участник, как и прежде, получает отмену.
v1.310.0 · 31 октября 2026 г.
- Новое: облако слов свободных ответов в
GET /forms/{id}/analysis. Каждый вопрос со свободным текстом содержитterms(itemsсterm,display,count,kindword,pairилиanswer, а такжеbelowThresholdиhidden), подсчитанные без ИИ: по ответам, начиная с 3 ответов, не более 40, без адресов электронной почты, веб-адресов, телефонов, чисел и служебных слов; у других вопросовterms: null. Новое на верхнем уровне:hiddenTerms.PUT /forms/{id}/analysis/hidden-termsсtermsзаменяет список скрытых понятий (только администраторы,forms:write); отдельное слово скрывает и все пары слов, в которых оно стоит.
v1.309.0 · 31 октября 2026 г.
- Новое:
GET /forms/{id}/analysis/groupвозвращает контакты за фильтрами анализа (период, ссылка, язык, ответ, как вGET /forms/{id}/analysis) в видеcontactIds, а такжеwithoutContactдля ответов без контакта. С его помощью, как во вкладке «Действия», создают список контактов (POST /contact-lists,POST /contact-lists/{id}/members) или задачу (POST /tasks).
v1.308.0 · 31 октября 2026 г.
- Новое: отклик по персональным ссылкам анкеты.
GET /forms/{id}/follow-upвозвращает для каждой ссылки контакту или потенциальному клиенту статус (submitted,started,opened,not-opened,expired), когда и сколько раз напоминали иremindBlockedBy; ссылки к карте клиента не учитываются.POST /forms/{id}/follow-up/remindсlinkIds(не более 50) иtemplateId(шаблон сообщения для контактов) отправляет каждому шаблон с его персональной ссылкой от имени действующего лица через ту же точку отправки, чтоPOST /contacts/{id}/conversation/email; нужноemail:write. Пропускаются отправленные, истёкшие, без контакта или адреса, а также те, кому напоминали за последние 24 часа (skipped); без отправителя 422precondition-failedс причинойno-sender.
v1.307.0 · 31 октября 2026 г.
- Новое: взаимосвязи в ответах анкеты.
GET /forms/{id}/analysis/relationsпроверяет каждую пару из двух вопросов (выбор, да/нет, варианты множественного выбора, названные не менее 3 раз, числа; персональные данные никогда) и, сcontacts:read, признаки контакта, к которому привязан ответ (страна, метки, классы, курирующий партнёр, этап в каждой воронке, год создания;contactFeatures). Пары проверяются по ответам, в которых есть оба признака (не менее 10, группы не менее 5), точным тестом Фишера, хи-квадрат, Манна — Уитни или Краскела — Уоллиса, затем поправкой Бенджамини — Хохберга по всем парам:findingsсlevelrelationship(q меньше 0,05) илиhint(меньше 0,1), не более 20, а такжеcheckedиtooSmall. СcompareAиcompareBтакжеcomparison: таблица сопряжённости или группы с медианой и диапазоном, уровень из той же поправки. Фильтры как вGET /forms/{id}/analysis.
v1.306.0 · 31 октября 2026 г.
- Новое: ИИ-аналитика формы.
GET /forms/{id}/analysis/aiвозвращает сводку последнего запуска: утверждения с видом (countedподсчитано,classifiedоценка ИИ) и подтверждениями (варианты, заявки), темы свободных текстов с их заявками, предложения новых вариантов; каждое число утверждения есть в сводке фактов, остальные не выдаются (discarded).POST /forms/{id}/analysis/aiзапускает анализ (202,runId),PUT /forms/{id}/analysis/ai/settingвключает или выключает его для формы (администраторы; выключение удаляет сводки). В ИИ передаются вопросы, подсчитанные результаты и свободные тексты; поля имени, почтового адреса, даты рождения, адреса электронной почты и номера телефона не передаются, насколько их можно распознать как таковые (готовые поля о человеке, поля типа e-mail, телефон, интернет-адрес, собственные поля, подпись которых на это указывает). Нужно право организации на ИИ-аналитику (403feature-not-available). Также новое вGET /forms/{id}/analysis:dataQualityс ответами на скрытые вопросы, повторными заявками и пропущенными обязательными ответами.
v1.305.0 · 31 октября 2026 г.
- Новое: физическая активность как каталог
sportязыка правил, Compendium of Physical Activities 2024 (ещё не выпущено).GET /physical-activitiesищет код (в том числе начало кода) или слова английского описания; каждый результат называетcompendium(adult,older-adult,wheelchair),group,metсmetBasis(MET,MET60,METWC, между собой несравнимы) и ссылку на источник вsource. Запись — это код с ведущим нулём (01003); при сохранении и утверждении правила он должен быть загружен, иначеeintragUnbekannt.GET /standard-catalogsпоказываетactivities(количество, компендиумы,inPlan,planRelease, источники).PATCH /standard-catalogs/sportс{ inPlan }разрешает физическую активность для плана клиента или отзывает разрешение, только человек с правом «Утверждать правила», никогда автоматизация и никогда MCP (403forbidden); в плане указаны название, длительность и частота, без значения MET. Без разрешения физическая активность учитывается вinternalLeftOut.
v1.304.0 · 31 октября 2026 г.
- Новое: МКБ-11 ВОЗ как каталог
icd11языка правил, рядом сicd10gm(ещё не выпущено).GET /diagnosis-codesпринимаетcatalog(icd10gmпо умолчанию илиicd11); каждый результат теперь содержитtitleDeMissing(только МКБ-11: в предварительной немецкой версии для кода ещё нет названия, тогдаtitle— английское),titleEnиuri(только МКБ-11; код, название и URI при любой передаче идут вместе, лицензия ВОЗ). При сохранении и утверждении правила код МКБ-11 должен быть в активной версии, иначеeintragUnbekannt; в персональном плане диагноз не появляется никогда и учитывается вinternalLeftOut. Изменено:GET /standard-catalogsвозвращаетdiagnosesкак список активных каталогов диагнозов (id,version,count), а не как один объект; версия 1.303.0 ещё не была выпущена.
v1.303.0 · 31 октября 2026 г.
- Новое: продукты питания как каталог
lebensmittelязыка правил (ещё не выпущено). Запись — этоslugпродукта изGET /foods/search; при сохранении и утверждении правила он должен быть в базе, иначеeintragUnbekannt.GET /rulebook-catalogsпоказываетlebensmittelс записями, которые используют правила организации.GET /standard-catalogsпоказывает продукты (количество,inPlan,planRelease, источники) и активную ICD-10-GM;PATCH /standard-catalogs/lebensmittelс{ inPlan }разрешает продукты для плана клиента или отзывает разрешение, только человек с правом «Утверждать правила», никогда автоматизация и никогда MCP (403forbidden). Без разрешения продукты остаются внутренними и учитываются вinternalLeftOutперсональных планов.
v1.302.0 · 31 октября 2026 г.
- Новое: диагнозы ICD-10-GM как каталог
icd10gmязыка правил (ещё не выпущено).GET /diagnosis-codes?q=ищет в активной версии код (в том числе начало,E11) или слова в названии, на немецком или русском, и возвращает код, официальное название, русское название (titleRuFromуказывает вышестоящий код, если у кода нет собственного), уровень и пригодность для кодирования;catalogс версией и указанием источника,null, пока версия не загружена.GET /rulebook-catalogsпоказываетicd10gm, как только версия есть;entriesтам называет только коды, которые используют правила организации. При сохранении и утверждении правила каждый код вempfehlung(icd10gm; <код>)должен быть в активной версии, иначеeintragUnbekannt. Диагнозы никогда не появляются в плане клиента.
v1.301.0 · 31 октября 2026 г.
- Новое:
GET /forms/{id}/responses/export, заявки формы в формате CSV. Одна строка на заявку, сначала старые: идентификатор, время (по Берлину), ссылка, язык, затем по столбцу на каждый вопрос в порядке формы. Выбор как текущая подпись (иначе подпись из заявки), числа как числа, измерения и таблицы в отдельных столбцах, повторяющаяся группа в одной ячейке, с учётом исправлений. Те же фильтры, что уGET /forms/{id}/analysis. Заголовки столбцов на языкеlocale; приenзапятая, иначе точка с запятой и десятичная запятая; в начале BOM. Формы карты клиента только при включённых данных клиентов иclients:read.
v1.300.0 · 31 октября 2026 г.
- Новое:
GET /forms/{id}/analysis, аналитика формы с теми же цифрами, что на странице «Аналитика». По каждому вопросу база (shown: кому он был показан; для условных вопросов только при выполнении условия), подсчёт по ключу варианта, включая варианты, которых больше нет (inForm: false), свободные тексты варианта «Другое» при этом варианте (otherTexts), показатели для чисел и измерений, свободные тексты дословно; личные данные только подсчитываются (kind: personal). А также заявки по дням и языкам иdropOff, цепочка отказов из измерения формы. Фильтрыfrom,to,link(personal,noneили идентификатор публичной ссылки),language,questionвместе сoption. Формы карты клиента только при включённых данных клиентов иclients:read.
v1.299.0 · 30 октября 2026 г.
- Журнал согласий (
GET /consent-log): новая цельpurposes.partnerAttribution(привязка к партнёру: покупка засчитывается партнёру, по рекламному коду которого пришёл посетитель). В старых записях —false. В выгрузке (GET /consent-log/export) для неё добавлен столбец «Partner-Zuordnung» после «Auf diesem Geraet angemeldet bleiben».
v1.298.0 · 30 октября 2026 г.
- Новое: защита клиентов в рассылках. Поле
clientProtection(enabled,changedAt;nullбез действующего модуля практики) иPUT /email-campaigns/{id}/client-protectionс{ enabled }, в любом статусе. Выключено: письма получателям с картой видны в общих исходящих и у контакта; уже отправленные переносятся, включение возвращает их в раздел клиентов. Выключение только при разрешённых данных клиентов,clients:readи доступе действующего лица к разделу клиентов (403client-access-required); без модуля практики 422practice-module-inactive.
v1.297.0 · 30 октября 2026 г.
GET /organization/invitations: непринятые приглашения (открытые, истёкшие, отозванные) удаляются на следующий день после истечения срока и больше не появляются, в том числе сstatus=EXPIRED;DELETE /organization/invitations/{id}для такого приглашения затем возвращает 404 вместо 204. Принятые приглашения сохраняются. Это указано в описании поляstatus.
v1.296.0 · 30 октября 2026 г.
- Новое: происхождение (ещё не выпущено).
GET /personal-plans/{id}/derivationвозвращает расчёт, из которого создан персональный план, в формеPOST /rulebooks/{id}/compute, а также происхождение каждого прочитанного значения (origins: дата, лабораторный отчёт); только для людей с правом «Утверждать правила», иначе 403physicians-only.GET /care-enrollments/{id}/derivationвозвращает рекомендацию, из которой начато сопровождение: свод правил, версию и правило для каждого шаблона и модуля, со следом в виде списка (уровень, значение, происхождение, дата); без этого права только свод правил и версию (physicianView: false). У планов и сопровождений, созданных раньше, происхождения нет (runилиderivationпусты).
v1.295.0 · 30 октября 2026 г.
- Новое право
FORMULAR_KI(ИИ-анализ форм) вGET /organization/entitlementsи в эндпоинтах лицензий. У него нет предварительных условий, оно открывает ИИ-функции анализа форм, как только они будут выпущены; цифры и диаграммы от него не зависят.
v1.294.0 · 30 октября 2026 г.
- Изменено (решение оператора, ещё не выпущено): то, что правила говорят о человеке, читают только люди с правом «Утверждать правила».
POST /rulebooks/{id}/computeиGET /rule-runs/{id}иначе отвечают 403physicians-only(через MCP для такого человека разрешено, для автоматизации без человека никогда);GET /clients/{id}/rule-runsостаётся. Для всех остальных персональные планы приходят безrulesу рекомендаций, а рекомендации, ставшие внутренними, без названия, текста и данных.
v1.293.0 · 30 октября 2026 г.
- Персональные планы содержат только образ жизни и самочувствие (решение оператора, ещё не выпущено): собственные каталоги внутренние, пока человек с правом «Утверждать правила» не допустит их к плану (
inPlanвPATCH /rulebook-catalogs/{key}, читается какinPlanиplanRelease; только в областях образа жизни,otherотвечает 409area-never-in-plan). Записи содержатdoctorsOnly(устанавливают только те же люди,PATCH …/entries/{entryKey}). Ни то, ни другое не через автоматизацию или MCP (403release-needs-person).professionalOnlyудалено. В планах:internalLeftOutвместоprofessionalOnlyLeftOut,internalEntries,lifestyleConfirmation, пробелrecommendations-internal, 409all-internalвместоprofessional-only;POST /personal-plans/{id}/releaseтребуетconfirmLifestyle: true.
v1.292.0 · 30 октября 2026 г.
- Изменено по сравнению с 1.291.0 (ещё не выпущено):
release.waitingForвGET /organization/licenseсодержит английские значения (receivables,payables,subscriptions,affiliate-sales,affiliate-claims,affiliate-credit-notes,affiliate-drafts,affiliate-clawbacks,affiliate-other, иначеother). Передача организации и её отмена остаются в приложении (решение оператора), потому что в конце следует удаление.
v1.291.0 · 30 октября 2026 г.
- Новое в
GET /organization/license: для каждой организацииrelease(идущая передача: с какого дня, только чтение до, фазаread-onlyилиstopped, запрошена и отправлена ли резервная копия, что задерживает удаление, можно ли отменить) иreleasable(можно ли её передать). Сама передача и отмена пока выполняются только в приложении.
v1.290.0 · 30 октября 2026 г.
- Новое: изменения лицензии через API, всегда в два шага.
POST /organization/license/changes/previewзаранее рассчитывает изменение модуля (количество, такт): действие сразу с пропорциональным счётом или с даты смены, сумма сейчас и за период, сchecksum;POST /organization/license/changesподтверждает его с этойchecksum.POST /organization/license/cycle-change/previewиPOST /organization/license/cycle-changeпереводят пакет между ежемесячным и ежегодным тактом (continueдля выбираемых годовых модулей). При подтверждении заголовокIdempotency-Keyобязателен (422 наheaders.idempotency-key); если с предпросмотра что-то изменилось, 409preview-outdated. Только владелец объединения; подтверждение работает и в период только чтения. Новые причины (409):no-contract,package-ending,below-usage,change-pending,contract-error; 422 наbody.cycleиbody.quantity.
v1.289.0 · 30 октября 2026 г.
- Новое: лицензия организации через API (модель лицензий).
GET /organization/licenseпоказывает лицензию объединения, как вкладка «Лицензия» (пакет с версией, тактом, ценой, состояние, дата смены, организации, модули, а для каждой организации выбор и уровень видео), только для владельца объединения.GET /organization/license/choicesпоказывает места выбора, выбор и уровень видео этой организации (владелец объединения или ORG_ADMIN).PUT /organization/license/choicesвыбирает модули для мест выбора,PUT /organization/license/video-tierназначает забронированный уровень видео; оба только владелец объединения, свободное место действует сразу, смена — с ближайшей ежемесячной даты, и оба работают и в период только чтения. Без владельца объединения 403forbiddenсreasontenant-owner-required.
v1.288.0 · 30 октября 2026 г.
- Новое: период только чтения модели лицензий действует и для API и API-MCP. Если лицензия организации закончилась, API 30 дней принимает только читающие вызовы, затем запись тоже заблокирована. Записывающий вызов тогда получает 403
forbiddenсreasonlicense-read-only,phase(read-onlyилиlocked) иuntil(последний день периода только чтения). Проходят только эндпоинты с исключением для этой фазы; сейчас в период только чтенияPOST /backups/runsиPUT /backups/password(резервная копия считается экспортом), а такжеDELETE /affiliate-coupons/{id},PATCH /affiliate-coupons/{id}сactive: falseиDELETE /affiliate-tracking/webhook(завершение). После периода только чтения ни один из них не проходит. Читающие вызовы, включаяPOST …/validateи предпросмотры, не меняются; автоматизации организации в период только чтения продолжают работать.
v1.287.0 · 30 октября 2026 г.
- Новое в
GET /rooms/settings:recordingStorage— хранилище организации для видеозаписей онлайн-комнаты:tier(видеотариф,nullбез тарифа),usedBytes,limitBytes(nullбез лимита) иstate(free,warningот 80 %,fullот 100 %,unlimited). Учитываются только видеозаписи, документ которых существует; аудиозапись для сводки не учитывается. Когда хранилище заполнено, новая видеозапись не начинается, встречи продолжаются без неё.PATCH /rooms/settingsпо-прежнему отвечает толькоsummary. - Изменённое поведение, спецификация без изменений:
PATCH /organization/members/{userId}сclientAccess: trueотвечает403 forbiddenсreason: practice-read-only, если практика организации доступна только для чтения (модуль завершён или период только чтения). Существующее право сохраняется, отзыв (false) возможен всегда.
v1.286.0 · 30 октября 2026 г.
- Изменённое поведение эндпоинтов практики (своды правил и каталоги, связи и случаи расчёта, персональные планы, планы сопровождения, сопровождения и сессии, профили биомаркеров и наборы правил), спецификация не изменилась: если модуль практики организации завершён или организация находится в периоде только для чтения (модель лицензий), остаются доступны читающие эндпоинты, запрос PDF персонального плана, расчёт без сохранения (
POST /rulebooks/{id}/compute) и завершение (POST /rule-cases/{id}/withdraw,DELETE /rule-connections/{id},POST /personal-plans/{id}/withdraw,POST /care-plans/{id}/retire); раньше они отвечалиfeature-not-available. Записывающие эндпоинты тогда отвечают 403forbiddenсreasonpractice-read-only. Без практики остаётсяfeature-not-available.
v1.285.0 · 30 октября 2026 г.
- Новое:
PATCH /rule-connections/{id}сcreditAccountId(илиnull) задаёт кредитный счёт партнёра у связи для расчёта, только рассчитывающая организация, только ORG_ADMIN. После этого каждое утверждение персонального плана из случая этой связи списывает с этого счёта 1 кредит (расход), отзыв плана или случая возвращает его; без счёта ничего не списывается. Неизвестный или закрытый счёт даёт 422 наbody.creditAccountId(invalid_reference).GET /rule-connectionsтеперь содержит вasComputingполеcreditAccount({ id, program, customer }илиnull). - Новое значение
PERSONAL_PLANвsourceкредитных проводок (GET /credits/accounts/{id}): расход и возврат из персонального плана, переданного организации-партнёру.
v1.284.0 · 30 октября 2026 г.
- Новое в шаблонах планов сопровождения: модули.
GET,POST,PUT /care-plansиPOST /care-plans/validateсодержатmodules([{ key, name }]), а фазы и сессии —moduleKey: части, которые попадают в сопровождение только по рекомендации. Фаза с модулем берёт с собой свои сессии; собственный модуль сессия получает только в фазе без модуля. Без указания ключ образуется из названия (строчные буквы, цифры, дефис) и сохраняется между версиями, потому что правила рекомендуют модуль по нему. Новые ошибки 422 наbody.modules(too_big,required,duplicate) и наmoduleKeyфазы или сессии (invalid_reference). - Новое: варианты сессии,
variants([{ moduleKey, callGuideId, durationMinutes }], не более 5, по одному на модуль). Если модуль выбран при запуске, действуют сценарий и длительность варианта; побеждает первый выбранный. 422 наbody.sessions.{n}.variants(invalid_value,requiredбез сценария и длительности); чужой сценарий или длительность, которой нет у типа встречи, сообщаются как у сессии, наcallGuideIdилиdurationMinutes. - Изменено по сравнению с 1.282.0: сохранение черновика с модулями без
modulesили с вариантами, когда ни одна сессия не содержитvariants, теперь отвечает 422requiredнаbody.modulesилиbody.sessionsвместо 409rejected. Пустой списокmodulesудаляет все модули; сессия безvariantsтеряет свои варианты, как только другая сессия указывает это поле. - Новое при запуске сопровождения (
POST /care-enrollments):modules, ключи выбранных модулей. Части других модулей не попадают в сопровождение, сессии нумеруются заново; без указания ни одного. Рекомендованные называетGET /clients/{id}/care-plan-suggestions. 422 наbody.modules:invalid_referenceдля ключа, который не относится к версии,too_small, если осталось бы меньше двух сессий. Копияcopyсодержитmodules(выбранные) иmoduleKeyу фаз и сессий, а у сессий ещёvariantModuleKey(модуль, вариант которого действует); самих вариантов в ней нет.
v1.283.0 · 30 октября 2026 г.
- Новое в
GET /rule-cases:retainUntil, окончание срока хранения случая у рассчитывающей организации: десять лет после последнего события (расчёт или отзыв), как у карты (§ 630f абз. 3 ГГУ Германии). Автоматически ничего не удаляется.
v1.282.0 · 30 октября 2026 г.
- Изменённое поведение
POST /care-plansиPUT /care-plans/{id}(спецификация не изменилась): если в черновике есть модули или варианты сеансов (созданные в приложении), сохранение без них отклоняется с 409conflictиreasonrejected, вместо того чтобы молча их удалить. Модули и варианты в эндпоинтах шаблонов появятся в одной из следующих версий; предложения содержат их с 1.281.0 (modules).
v1.281.0 · 30 октября 2026 г.
- Новое в
GET /clients/{id}/care-plan-suggestions:whole(рекомендован ли весь шаблон) иmodules, рекомендованные модули шаблона сkey,nameиsources. Модуль — часть шаблона (фазы или сеансы), которая попадает в сопровождение только по рекомендации; шаблон появляется и тогда, когда рекомендован только модуль в нём.
v1.280.0 · 29 октября 2026 г.
- Новое: оценки подсказок из расчётов других организаций возвращаются рассчитывающей организации, с причиной и названием партнёрской организации, без имени человека; не при отозванной связи или отозванном случае.
PUT /care-sessions/{id}/foreign-hints/{runId}/{rule}отвечает сsent,foreignHintsсодержатjudgementSent. В рассчитывающей организацииGET /rulebooks/{id}/hint-statsучитывает их (accurate/notAccurateпо всем,fromPartnersдоля партнёров); новоеGET /rulebooks/{id}/hint-objections(данные клиентов,clients:read): последние возражения по каждому правилу с причиной,byиfromPartner.
v1.279.0 · 29 октября 2026 г.
- Новое: подсказки из расчётов других организаций в кокпите.
GET /care-sessions/{id}/hintsвозвращаетforeignHints: для каждой рассчитывающей организации и набора правил последний действующий расчёт в карте, сrunId,computedBy,rulebook,versionNumber,approvedBy,computedAt,reportIdи теми же полями, что иhints.PUT /care-sessions/{id}/foreign-hints/{runId}/{rule}сохраняет оценку (judgement,reason,runHash; только человек, никогда автоматизация или MCP, 403judgement-needs-person; отозванный расчёт: 409conflictсreasonrun-withdrawn). Оценка остаётся в собственной организации.
v1.278.0 · 29 октября 2026 г.
- Новое: PDF персонального плана.
POST /personal-plans/{id}/pdfзапрашивает его (202; только для утверждённых или отозванных планов, черновик: 409conflictсreasonnot-released),GET /personal-plans/{id}/pdfпоказывает состояние (status:none,pending,ready,failed, а такжеdocumentId); готовый с подписанной ссылкой (url,filename,expiresAt, действует несколько минут). Для каждого состояния плана создаётся один PDF; после отзыва состояниеnone, новый содержит отметку. Данные клиентов, журнал доступа.
v1.277.0 · 29 октября 2026 г.
- Новое: персональные планы по случаю партнёрской организации (расчёт за пределами организации,
/rule-cases).GET /rule-cases/{id}/personal-plansвыводит их список,POST /rule-cases/{id}/personal-plansсоздаёт черновик по результату, сохранённому в случае (language,title); отозванный случай: 409conflictсreasoncase-withdrawn. ЧерезPOST /personal-plans/{id}/releaseнеизменяемая копия передаётся в карту у партнёра; если карты там нет: 409partner-record-missing. - Новое в планах:
fromOrganization(копия из другой организации, её название; иначеnull),fromCase(создан по случаю) и в отдельном планеdelivered(передан партнёру).POST /personal-plans/{id}/withdrawотзывает и переданную копию; копию отзывает только источник (409foreign-plan). Если рассчитывающая организация отзывает случай (POST /rule-cases/{id}/withdraw), его планы тоже перестают действовать.
v1.276.0 · 29 октября 2026 г.
- Новое: персональные планы (данные клиентов,
biomarkers:*иclients:*, журнал доступа).POST /clients/{id}/personal-plansрассчитывает действующую версию набора правил (rulebookId, необязательноreportId) и создаёт черновик с рекомендациями из собственных каталогов и их текстами (409no-recommendation,professional-only);GET /clients/{id}/personal-plans,GET/PATCH/DELETE /personal-plans/{id}(название,coverNote,remove,texts; только черновик, 409not-draft).POST /personal-plans/{id}/releaseи…/withdrawтолько человеком с правом «Утверждать правила», никогда автоматизацией или через MCP (403release-needs-person,approve-right-missing); утверждение только без пробелов (409plan-incompleteсgaps). Указание организации:GET/PATCH /personal-plan-settings(задаётся как утверждение). - Новое в собственных каталогах:
professionalOnly(только для специалистов) вGET/POST/PATCH /rulebook-catalogs…; записи таких каталогов никогда не появляются в персональном плане.
v1.275.0 · 29 октября 2026 г.
- Новое: собственные каталоги рекомендаций с текстами.
POST /rulebook-catalogsсоздаёт каталог (names,area:nutrition,exercise,sleep,mental,supplements,other; ключ создаётся из первого названия и не меняется),GET /rulebook-catalogs/{key}читает его со всеми записями и текстами,PATCH /rulebook-catalogs/{key}меняет названия, область, порядок илиarchived. Записи:POST /rulebook-catalogs/{key}/entries(names,textsна каждом языке в HTML, очищается при сохранении) иPATCH /rulebook-catalogs/{key}/entries/{entryKey}. Название может встречаться в каталоге только один раз (422duplicateвbody.names); слишком много каталогов или записей 409too-many. - Изменено:
GET /rulebook-catalogsнаряду с каталогом путей перечисляет собственные каталоги, не находящиеся в архиве (без архивных записей). Правило рекомендует запись так же, как путь; название из нескольких слов может стоять в формуле и без кавычек (рекомендация(Сон; спокойное дыхание)).
v1.274.0 · 29 октября 2026 г.
GET /clients/{id}/care-plan-suggestionsтеперь включает и пути из расчётов других организаций (rule-runs, последний для каждой рассчитывающей организации и набора правил), если вы приняли их план сопровождения: предлагается ваша собственная копия. Новое для каждого источника:computedBy(название рассчитывающей организации, иначеnull);rulebookIdу таких источников равенnull. Планы сопровождения принимаются только в интерфейсе.
v1.273.0 · 29 октября 2026 г.
- Новое: расчёт за пределами организации.
GET /rule-connections,POST /rule-connections(создать связь со своими наборами правил, кодrech_…возвращается один раз и действует семь дней),POST /rule-connections/redeem(активировать код другой организации,legalBasisConfirmed: trueподтверждает правовое основание) иDELETE /rule-connections/{id}. Создание, активация и отзыв только ORG_ADMIN; создание и активация только человеком, никогда автоматизацией и никогда через MCP (403forbiddenсreasonconnection-needs-person). - Новое:
POST /clients/{id}/rule-runsпоручает расчёт другой организации через активную связь: передаются только значения, которые читает действующая версия набора правил, а также имя, дата рождения, возраст и пол; никогда из автоматизации (403request-needs-person). Обратно приходит расчёт без формул:GET /clients/{id}/rule-runs,GET /rule-runs/{id}(объект результата как вcompute, правила с названиями, единицей, группами и подсказкой). Рассчитывающая организация видит свои случаи вGET /rule-casesи отзывает случай черезPOST /rule-cases/{id}/withdraw(право «Утверждать правила», только человек); расчёт у партнёра тогда получаетstatus: withdrawn.
v1.272.0 · 29 октября 2026 г.
GET /rulebook-sourcesтеперь перечисляет и таблицы и повторяющиеся группы анкет карты: для каждой ячейки таблицыanamnese:<блок>.<строка>.<столбец>(при одном столбцеanamnese:<блок>.<строка>), для каждого столбца выбора повторяющейся группы множествоanamnese:<блок>.<столбец>по всем строкам иanamnese:<блок>.anzahl.POST /rulebooks/{id}/computeберёт их из последней отправки, ответившей на блок, с исправлениями.- Новое:
GET /rulebook-catalogsс каталогами, из которых правила дают рекомендации, сегодня каталог путей (weg: шаблоны планов сопровождения, ключ первая версия шаблона). Новое:GET /clients/{id}/care-plan-suggestions(careplans:readиclients:read, данные клиентов, журнал доступа) с путями, которые утверждённые наборы правил предлагают клиенту, с правилами и последней опубликованной версией (plan). Предложение ничего не запускает; запуск черезPOST /care-enrollments.
v1.271.0 · 29 октября 2026 г.
- Подсказки в кокпите: каждое правило в ответах под
/rulebooksсодержитhint({ color, action }сcolorred,goldилиgrey, иначеnull). При сохранении (PUT /rulebooks/{id}/draft/rules/{key},POST /rulebooks/{id}/draft/validate)hintзадаёт подсказку,nullубирает её, без указания она сохраняется. Подсказкой может быть только правило, которое даёт «да» или «нет» (422 наbody.hint); подсказка входит в контрольную сумму. Новое:GET /rulebooks/{id}/hint-statsс оценками коучей по каждому правилу (accurate,notAccurate). - Новое в
careplans:GET /care-plans/{id}/rulebooks,POST /care-plans/{id}/rulebooks(привязать набор правил, только в черновике собственного шаблона, иначе 409plan-not-editable),PATCH /care-plans/{id}/rulebooks/{rulebookId}(active, всегда) иDELETE /care-plans/{id}/rulebooks/{rulebookId}.GET /care-sessions/{id}/hintsвозвращает подсказки сессии (красные, золотые, серые,stateappliesилиcannot-assessсmissing, оценка,runHash;clients:read, журнал доступа).PUT /care-sessions/{id}/hints/{versionId}/{rule}сохраняет оценку (accurateилиnot-accurateсreason), только человеком: никогда автоматизацией и никогда ИИ-агентом через MCP (403forbiddenсreasonjudgement-needs-person).
v1.270.0 · 29 октября 2026 г.
GET /rulebook-sourcesтеперь, помимо лабораторных показателей и данных о человеке, перечисляет анамнез из полей карты (anamnese:<ключ поля>, для измерений из нескольких частейanamnese:<ключ>.<часть>) и состояние сопровождения (plan:sitzung,plan:tag,plan:phase). Правила могут их читать.POST /rulebooks/{id}/computeучитывает анамнез; состояние сопровождения ему неизвестно, так как он считает без сессии: правила, которым оно нужно, дают «неизвестно» (unknown).- Изменено:
callMinutesвGET /affiliates/activityтеперь учитывает только длительность разговоров: звонки с готовой заметкой о разговоре, которая фиксирует не только голосовую почту, или со сценарием и результатом, а также принятые звонки без заметки от 30 секунд, которые не являются голосовой почтой. Раньше учитывалась длительность каждого принятого звонка, включая голосовую почту, поэтому значения могут быть меньше.callsне изменился. - Изменено:
PATCH /organizationотклоняет сменуtypeнаBUSINESSилиHOLDINGс409 conflictиreason: organization-limit, если в лицензионном пакете нет свободного места для ещё одной коммерческой организации или холдинга. Это касается только пакетов с заданным числом организаций; действующие лицензии без такого числа не затронуты.
v1.269.0 · 29 октября 2026 г.
- Новое: наборы правил языка правил под
/rulebooks(biomarkers:read,biomarkers:write), те же, что в разделе «Правила» приложения. Чтение и ведение:GET /rulebooks,GET /rulebooks/{id}(с?version=определённая версия),POST /rulebooks,PATCH /rulebooks/{id},DELETE /rulebooks/{id}иGET /rulebook-sources(что могут читать правила: лабораторные показатели и данные о человеке, с названиями и единицами). Правила в черновике:PUT /rulebooks/{id}/draft/rules/{key}формулой (formula, на языке запроса, как в строке формулы) или деревом (expression),POST /rulebooks/{id}/draft/validateкак пробный прогон иDELETE /rulebooks/{id}/draft/rules/{key}. Каждое правило возвращается формулой на трёх языках и деревом. Версии:POST /rulebooks/{id}/versions(черновик как копия действующей),DELETE /rulebooks/{id}/draftиPOST /rulebooks/{id}/draft/approve. - Утверждать (
POST /rulebooks/{id}/draft/approve) может только пользователь с правом организации «Правила» (иначе 403forbiddenсreasonapprove-right-missing), никогда автоматизация и никогда ИИ-агент через MCP (403forbiddenсreasonapprove-needs-person): утверждение является решением врача. Версия с ошибками отвечает 422, версия без правил 409version-empty. При утверждении сохраняется контрольная сумма правил (checksum). - Новое:
POST /rulebooks/{id}/computeс{ clientId, rules? }(biomarkers:readиclients:read, а также включённые данные клиентов; обращение записывается в журнал доступа) считает действующую версию по утверждённым лабораторным показателям клиента и возвращает объект результата:values,inputs,groups,trace, версию сchecksumи утверждением, а такжеhash. Без утверждённой версии 409no-effective-version; если правила больше не совпадают с контрольной суммой, 409checksum-mismatch, и расчёт не выполняется. - Устарело: восемь эндпоинтов под
/biomarker-rule-sets(biomarkers.listRuleSets,getRuleSet,createRuleSet,validateRules,replaceRules,deleteRuleSet,confirmRuleSet,unconfirmRuleSet). Они продолжают отвечать до 31.12.2026 с заголовкамиDeprecationиSunset, после чего будут удалены. В API MCP они скрыты начиная с этой версии. Их наборы правил не переносятся; создавайте правила под/rulebooks.
v1.268.0 · 27 октября 2026 г.
- Исправлено:
POST /email-campaigns/{id}/report/fetch-reasonsтеперь сопоставляет и возвраты, о которых SendGrid сообщает в ту же секунду, что и отправка (например, немедленные отказы Gmail). SendGrid хранит время в списках блокировки с точностью до секунды; такие записи считались более ранними, чем отправка, и учитывались вwithoutEntry.
v1.267.0 · 27 октября 2026 г.
- Изменено: после Bounces и Blocks
POST /email-campaigns/{id}/report/fetch-reasonsчитает также список Invalid Emails в SendGrid, но только для возвратов, у которых ещё нет причины и нет записи в Bounces; найденная запись сохраняется как возврат (typebounce,sourcesuppression-list). Новое в ответе:read.invalidEmails. Ограниченному ключу для этого нужно правоsuppression.invalid_emails.read; если права нет или SendGrid возвращает ошибку,read.invalidEmailsравноnull(вместо 0 для «прочитано, пусто» или «не требовалось»), причины из Bounces и Blocks сохраняются, а эти письма учитываются вwithoutEntry.
v1.266.0 · 27 октября 2026 г.
- Новое: основные настройки каталога
GET /finder/settings(finder:read:enabled,brandId,taxonomyCount) иPATCH /finder/settings(finder:write, тело{ brandId },nullозначает стандартный борд организации). Изменять могут только администраторы организации (иначе 403forbidden); если каталог не включён, 403feature-not-available; борд, которого нет в организации, даёт 422validation-failedсinvalid_referenceвbody.brandId. Борды возвращаетGET /sites/brands. Новое правоfinder:write: расширьте свои ключи, если хотите менять эту настройку.
v1.265.0 · 27 октября 2026 г.
- Новое: объединение контактов
POST /contacts/{id}/merge(contacts:write). Контакт из пути остаётся, контакты изmergeContactIds(от 1 до 20, того же типа) переносятся на него со всеми ссылками и удаляются; окончательно.fieldSourcesуказывает для каждого поля идентификатор участника, чьё значение применяется; теги объединяются. Ответ{ contact, mergedContactIds, reassignedReferences }.409сreasontype-mismatch,bookings-on-multipleили отдельной причиной для каждой блокировки (client-records-on-multiple,practitioner-profiles-on-multiple,sales-profiles-on-multiple,company-profiles-on-multiple,marketplace-subscriptions-on-multiple,calendars-on-multiple). Тот же порядок действий, что и в приложении. - Новое: событие
contacts.contact.merged, один раз на каждое объединение, в том числе из приложения, с оставшимся контактом (contact, в той же форме, что и вcontacts.contact.updated),mergedContactIdsиreassignedReferences. Для удалённых контактов не приходитcontacts.contact.deleted, для оставшегося не приходитcontacts.contact.updated: перенесите свои записи с удалённых идентификаторов на оставшийся контакт. Раньше объединение не отправляло событий. - Изменено: оба ответа
409уDELETE /contacts/{id}(in-use,client-record-retained) указывают вdetailпутьPOST /contacts/{id}/merge. - Изменено:
contacts.contact.createdтеперь приходит и для специалистов, которых Longevity-Finder создаёт при проверке сертификата, и для профилей, переносимых по одному из другого каталога. Теперь событие создаёт каждый новый контакт, каким бы путём он ни появился; исключение по-прежнему составляют массовые импорты и массовые переносы (1.263.0), а также тестовые случаи, которые claritos передаёт в организацию для тренировки.
v1.264.0 · 27 октября 2026 г.
- Новое: отчёт по кампании
GET /email-campaigns/{id}/reportс доставкой, причинами возвратов (SMTP-код, категория SendGrid, ответ сервера без адресов электронной почты), партиями, провайдерами, доменами, последствиями (список блокировки, отзывы без отмены согласий импорта), ответами, переходами по ссылкам, открытиями и записями на приём; а также остановка с сообщением SendGrid (run.providerMessage,run.haltMeaning). Обращения, которые, вероятно, были не от человека (фильтры безопасности, предварительные загрузки), считаются отдельно (botClicks,prefetches). - Новое:
GET /email-campaigns/{id}/recipients(постранично через курсор, фильтрыgroup,batch,domain,provider,reasonType,smtpCode,reasonCategory,search,updatedSince) иGET /email-campaigns/{id}/recipients/{recipientId}с историей всех сообщений, блокировкой, согласием, ответами (только переписка, время и тональность), переходами, открытиями и записями (appointmentId,appointmentTypeId,appointmentTypeNameна основном языке организации,statusкак вGET /appointments). Оба дополнительно требуютcontacts:read. - Новое:
POST /email-campaigns/{id}/report/fetch-reasonsполучает причины возвратов из списков блокировки SendGrid (в SendGrid ничего не меняется; можно повторять);409с причинойsendgrid-suppression-forbidden, если ключу нельзя читать списки. Новое:GET/PUT /email-campaigns/trackingсclicksPerPerson(переходы по каждому человеку или только по ссылкам, настройка организации; изменять могут только администраторы). - Новое: события
campaigns.email.clickedиcampaigns.email.opened, только для обращений, которые, вероятно, исходили от человека; отправляются примерно через восемь секунд после обращения, чтобы фильтр безопасности, открывающий все ссылки письма сразу, был распознан заранее.occurrenceравноfirstпри первом переходе получателя по этой ссылке или его первом открытии, иначеrepeat.contactId,recipientIdиoccurrenceуказываются, только если организация считает переходы по каждому человеку (иначеnull); если она считает только по ссылкам, claritos отсеивает программы без браузера, слишком ранние обращения иHEAD, но не серии, так как обращения не привязаны к человеку. Оба являются триггерами автоматизаций с фильтром по кампании и поoccurrence. Изменено: у кампаний есть полеmeasureOpens(измерять открытия собственным изображением, по умолчанию выключено), доступное для чтения и задаваемое при создании и изменении.
v1.263.0 · 27 октября 2026 г.
- Изменено:
contacts.contact.createdтеперь приходит и при этих новых контактах: новый покупатель из checkout (в том числе при оформлении лицензии), в партнёрской программе (одобрение заявки, closer-сервис, команда в партнёрском портале, ещё одно лицо из формы заявки, перенесённый потенциальный клиент), контактное лицо, перенесённое из письма, новый деловой партнёр при создании документа учёта и родственники, которых клиент добавляет в портале. Если у нового контакта есть теги, для каждого тега приходитcontacts.tag.added, как приPOST /contacts. Если используется существующий контакт, события нет. - Изменено: массовые переносы больше не отправляют события, ни
contacts.contact.created, ниcontacts.tag.added: перенос клиентов Stripe, основных данных DATEV и списка партнёров портала в бухгалтерии, а также импорт основных данных кредитов, в том числе черезPOST /credits/import-profiles/{id}/master-data. Раньше на каждый новый контакт приходило событие, а один запуск часто создаёт сотни. Это касается и контактного лица, которое создаёт такой перенос, когда лицо с номером НДС становится компанией. Если же claritos так разделяет уже существующий контакт (сопоставление с DATEV, изменённый номер НДС в списке партнёров, упорядочивание индивидуальных предпринимателей, форма контакта), для нового контактного лица по-прежнему приходитcontacts.contact.created. Если эти контакты нужны, прочитайте их после запуска черезGET /contacts.
v1.262.0 · 27 октября 2026 г.
- Изменено:
contacts.contact.createdтеперь приходит и тогда, когда форма создаёт новый контакт: отправки по ссылке формы (/f/…), через форму воронки илиPOST /forms/{id}/responses, персональная ссылка (POST /forms/{id}/personal-links), а также профили компаний и продавцов. Раньше событие приходило только для контактов, созданных вручную, черезPOST /contactsи из документов. Если форма находит существующий контакт, события нет. Правило: каждый новый контакт создаёт событие, массовый импорт не создаёт; другие пути создания последуют и будут перечислены здесь.
v1.261.0 · 27 октября 2026 г.
- Новое: логотип лицензии формы в два шага,
POST /forms/{id}/license-logo/upload(подписанный адрес) иPOST /forms/{id}/license-logo/confirm(только после этого форма показывает логотип; если файла ещё нет: 422 вbody.storageKey), удаление черезDELETE /forms/{id}/license-logo;GET /forms/{id}содержитlicenseLogoUrl.POST /forms/{id}/personal-linksсоздаёт или находит контакт по данным человека (valuesс полямиstd:, необязательноdocumentId) и возвращает заполненную ссылку на семь дней (url,contactId,validUntil; 201, нужныforms:writeиcontacts:write). Новая причинаtarget-not-supported(409) для форм, цель которых не поддерживает персональную ссылку. Архивные формы: 409archivedдля всех четырёх.
v1.260.0 · 27 октября 2026 г.
- Новое:
PATCH /forms/{id}меняет настройки формы как конструктор (название, обращение, публичная ссылка, портал,consentMode, отображение, поиск адреса, указание лицензии, завершение); краткое имя, цель, страницы и согласия по-прежнему задаётPUT(при передаче ответ 422invalid_combination); архивная форма даёт 409archived.GET /forms/{id}/share-linkчитает,POST /forms/{id}/share-linkсоздаёт ссылку организации для распространения (повторяемо; новая причинаpublic-access-disabled, 409).GET /forms/{id}и ответыPOST /forms,PUT /forms/{id}и вставки шаблона содержат настройки:showProgress,showSummary,showFieldLabels,showClientHeader,reminderService,recognitionCard,translateResponses,thirdPartyMode,addressFinderMode,addressFinderPlaceholder,licenseLabel,completion. Изменено:publicUrlвGET /formsиGET /forms/{id}теперь только ссылка организации; раньше там могла стоять партнёрская ссылка, через которую каждая отправка приписывалась этому партнёру. Без ссылки организации тамnull.
v1.259.0 · 26 октября 2026 г.
- Новые события
contacts.websiteAnalysis.completedиcontacts.websiteAnalysis.failed, ровно один раз на каждый запуск анализа веб-сайта, в том числе из портала, сценариев разговора, встреч и API. Полезная нагрузкаwebsiteAnalysisсодержит только идентификаторы и состояние:contactId(запрошенный),targetContactId(с результатом),topicId,topicName,language,source(app,portal,callGuide,meeting,api),userId,partnerContactId,affiliateId,startedAt,finishedAt; дляcompletedтакжеpagesReadиunverifiedQuotes, дляfailed— фиксированная причинаreason, какfailure.reasonв GET. Без текста страниц и результата: результат даётGET /contacts/{id}/website-analysis. В автоматизациях доступны как триггеры с фильтрами по источнику и причине.
v1.258.2 · 26 октября 2026 г.
- Изменено: у анализа веб-сайта больше нет переключателя включения. Поле
enabledубрано из ответовGET/POST/PUT /contacts/{id}/website-analysisиGET/PUT /website-analysis/settings, запуск больше не отвечает403 feature-not-available. Версии 1.258.0 и 1.258.1 никогда не были в production.
v1.258.1 · 26 октября 2026 г.
- Изменено:
POST /contacts/{id}/website-analysisбезlanguageиспользует язык организации (еслиde,enилиru, иначеde) и отвечает403 feature-not-availableраньше любых других проверок, пока функция не включена в среде.
v1.258.0 · 26 октября 2026 г.
- Новое: анализ веб-сайта у контакта.
GET /contacts/{id}/website-analysis(contacts.getWebsiteAnalysis) возвращает поводы для разговора с веб-сайта контакта (currentв виде HTML с прочитанными страницами,running,failure,history,dailyLimit); у интересента партнёра результат хранится у контакта-компании (targetContactId).POST(contacts.startWebsiteAnalysis, 202) запускает анализ сtopicIdиlanguage,PUT(contacts.updateWebsiteAnalysis) сохраняет версию вручную; оба только с действующим пользователем. Ошибки: 422precondition-failedсreason: no-websiteилиdaily-limit-reached, 409analysis-running, 403feature-not-available, пока функция не включена в среде. - Новое:
GET/PUT /website-analysis/topics(contacts.listWebsiteTopics,contacts.setWebsiteTopics) читает и заменяет промпты тем организации или, сcampaignId, партнёрской кампании (name,prompt,isDefault, не более 20, одна тема по умолчанию).GET/PUT /website-analysis/settings(contacts.getWebsiteAnalysisSettings,contacts.setWebsiteAnalysisSettings) читает и задаёт дневной лимит (dailyLimitот 0 до 500). Изменения только ORG_ADMIN.
v1.257.0 · 26 октября 2026 г.
- Сценарии разговора:
nextCallGuideIdу пунктов и ответов вcontent/call-guides(чтение и запись), «Продолжить сценарием …». Выход тогда становится концом: проход завершается своим результатом, а целевой сценарий начинается в том же разговоре.next, отличный отnull, рядом с ним даёт 422invalid_combinationу этого выхода; цель, не являющаяся активным сценарием организации, даёт 422sprung-ziel-unbekannt. - Событие
callguides.run.completed:guideRun.previousRunId(проход, из которого перешли сюда через «Продолжить сценарием …», иначеnull) иguideRun.nextGuideId(целевой сценарий, если проход завершается переходом, иначеnull).
v1.256.0 · 26 октября 2026 г.
- Свои поля:
GET /organization/custom-fields(с папками),POST /organization/custom-fields,PATCH /organization/custom-fields/{id},POST /organization/custom-fields/{id}/archiveи/unarchive. Чтение сorganization:read, запись сorganization:writeи ORG_ADMIN. Краткое имя, тип и сущности после создания не меняются (422immutable); варианты имеют постоянныйkey, переименование по ключу не затрагивает сохранённые значения. Новые причиныcustom-field-slug-takenиsystem-field(обе 409).
v1.255.0 · 26 октября 2026 г.
- Пайплайны (PI.37): у этапов есть
partnerRights(view,moveIn,moveOut,edit,delete), чтение и запись через эндпоинты этапов (только целиком; безviewдругих прав нет). Для этапа закрытияmoveInозначает закрыть, аmoveOut— вернуть в работу.partnerVisibilityостаётся для чтения (выводится из прав) и записи (переводится в права,deleteникогда);partnerRightsимеет приоритет.
v1.254.0 · 26 октября 2026 г.
- Пайплайны (PI.31, список звонков):
callList.businessOnly(только предприниматели и фрилансеры, B2B; дайлер в этом пайплайне никогда не спрашивает о согласии, отзыв по-прежнему блокирует), запись черезPATCH /pipelines/{id}. Каждое изменение записывается;callList.businessOnlyChangeпоказывает последнее (at,via,userId, только чтение).
v1.253.0 · 26 октября 2026 г.
- Пайплайны (PI.28, список звонков): у этапов есть
onCallList(карточки открытого этапа в списке звонков), у пайплайновcallListсbusy(followUpсbusyFollowUpMinutesилиend),noAnswerRetryMinutes,ringSeconds,hours(days1–7,from,to) иfirstCallStageId; запись черезPATCH /pipelines/{id}(callList, частично) и на этапах (onCallList). Сам список обзванивает дозвонщик в портале или CRM.
v1.252.0 · 25 октября 2026 г.
- Пайплайны (PI.27): новый
GET /pipelines/lead-quality(from,to, необязательноpipelineId): записи пайплайнов продаж, созданные за период, по источникам (kindform/funnel/existing сsourceIdиname, иначеvia) и по кампаниям (utmCampaign,utmSource) сleads,open,parked,won,lost,unqualifiedи долямиunqualifiedShare,wonShare(от 0 до 1 от всех лидов группы).
v1.251.0 · 25 октября 2026 г.
- Пайплайны (PI.26): у записей есть
leadSource(form,funnelилиexistingдля существующих интересантов, сsourceIdиutmиз визита в воронку:source,medium,campaign), для новых записей с этого момента. НовыеGET/POST /pipelines/{id}/backfill: перенос для обязательного пайплайна, интересанты допущенных партнёров без открытой или отложенной записи попадают на первый этап (running/finished/failed,candidates,created,failed); запускается и сам при включенииcouplings.prospectsRequired. Без обязательностиprecondition-failed(prospects-not-required), во время переносаconflict.
v1.250.0 · 25 октября 2026 г.
- Сценарии разговора (Телефония TW.48b):
notReached[].cardStatusEventпринимаетabsence(автоответ об отсутствии); шаблон ситуаций задаёт его для ситуации отсутствия. Значения следуют триггерам статуса карточки пайплайнов (PI.22b).
v1.249.0 · 25 октября 2026 г.
- Пайплайны (PI.22b): новый триггер статуса карточки
absence(звонок: сообщение об отсутствии) наряду сbusy,noAnswer,voicemailиinvalidNumber: у статусов карточки (trigger), в событииpipelines.entry.cardStatusChangedи какsituationвPOST /pipelines/entries/{id}/outcome(одна попытка, без смены этапа).
v1.248.0 · 25 октября 2026 г.
- Пайплайны, процесс продаж (PI.25): этапы указывают
appointmentTypeIds(типы встреч) иrole(preSetter,setter,closer). Когда встреча указанного типа для контакта открытой записи бронируется, переносится, отменяется или пропускается, статус карточки следует за ней; при бронировании ведущий становится ответственным и получает роль этапа, а прежний ответственный — предыдущую роль. Новый вид требованияappointmentсappointmentTypeId(null= любой тип). У записей естьbookedAppointmentTypeIdsиroles(человек, имя, встреча). Чужой тип встречи даётinvalid_reference.
v1.247.0 · 25 октября 2026 г.
- Сценарии разговора (
/call-guides, чтение и запись):content.results[].pipelineEffectсpipelineId,stageId,reasonId,packageId,cardStatusIdэто действие результата в пайплайне при завершении.content.notReached[].cardStatusEvent(busy,noAnswer,voicemail,invalidNumber, те же значения, что иtriggerвpipelines.entry.cardStatusChanged) это событие, с которым ситуация задаёт статус карточки. До сих пор API не показывал ни того, ни другого, иPATCHсcontentих терял.
v1.246.0 · 25 октября 2026 г.
- Пайплайны, процесс продаж (PI.24):
POST /pipelines/entries/{id}/outcomeзаписывает результат на карточке: статус карточки, этап с причиной (те же требования, что иmoveEntry), пакет и повторный контакт одним вызовом, илиnotReachedсsituation(busy,noAnswer,voicemail,invalidNumber): одна попытка, никогда смена этапа. У записей естьattemptsInStageиlastAttemptAt(каждое перемещение обнуляет попытки). Новый путьguideвvia(результат сценария) в истории и вpipelines.entry.stageChanged/cardStatusChanged.
v1.245.0 · 25 октября 2026 г.
- Новое:
GET /contacts/{id}/phone-consentиPUT /contacts/{id}/phone-consent(contacts.getPhoneConsent,contacts.setPhoneConsent): согласие контакта на телефонные звонки, отдельно от эл. почты и SMS. Ответ сstate(granted,revoked,none),since,number,callable(yesзвонить: компания или задокументированное согласие;askсначала спросить: потребитель без согласия;noне звонить: отозвано, в том числе у компаний) иhistoryсreasonиby(userIdилиcontactId,name).PUTпринимаетgranted,reason(обязательно, не более 2000 символов) и необязательноnumber, только с действующим пользователем (no-acting-user); не участник получает 403. - Новое:
GET /contacts/{id}/reminder-service(contacts.getReminderService) иPOST /contacts/{id}/reminder-service/unsubscribe(contacts.unsubscribeReminders): может ли контакт получать напоминания о встречах по эл. почте и SMS (email,sms, у каждогоstate,value,since), и отписка от обоих каналов, повторяемо, только с действующим пользователем — участником организации.
v1.244.0 · 25 октября 2026 г.
- Автоматизации: у триггера
pipelines.entry.cardStatusChangedесть фильтр «Статус карточки: один из», в каталоге (GET /automation-catalog) как путьtoCardStatus.idсkindpipelineCardStatus. Он сохраняется какpipelineStage, списком идентификаторов (новый статус карточки); идентификаторы, не принадлежащие организации или выбранным пайплайнам, при сохранении отклоняются.
v1.243.0 · 25 октября 2026 г.
- Сценарии разговора: (1)
callguides.run.completedтеперь приходит при первом явном завершении прохода («Завершить разговор») с результатом, который выбрал человек (resultId/resultName), а не само собой, как только основной путь дошёл до конца; по-прежнему один раз за проход, повторное открытие и завершение ничего не сообщают. (2) Новоеcontent.notReachedв/call-guides(чтение и запись): ситуации «Не дозвонились» сid,nameиsuggestion(hours,businessDays,manual,none). Завершение с такой ситуацией не отправляетcallguides.run.completed, последующее завершение с результатом отправляет один раз. До сих пор API не показывал этот список, иPATCHсcontentего терял. (3) Действие оплаты может содержатьlinks: []: тогда действует только ссылка на оплату записи пайплайна; если она есть у записи, она важнее собственных ссылок действия. Действие оплаты теперь неполное только безtemplateId.
v1.242.0 · 25 октября 2026 г.
- Обратная связь SendGrid (SV.198):
POST /sendgrid/eventsтеперь создаёт только ОДИН вебхук на аккаунт SendGrid. Если в аккаунте уже есть вебхук claritos (например, от другой организации на том же аккаунте), подключение использует его; остальные объединяются. Новые причины в422 precondition-failed:sendgrid-webhook-limit(тариф SendGrid не позволяет ещё один вебхук) иsendgrid-webhook-forbidden(SendGrid отклонил ключ для вебхуков); раньше обе приходили какsendgrid-events-failed, которая теперь содержит причину от SendGrid вdetail.checkErrorтеперь может бытьsendgridVerbindung.fehler.ereignisseTarifилиsendgridVerbindung.fehler.ereignisseRecht. События получает только организация, к письму которой они относятся: возвраты другой организации на том же аккаунте больше не блокируют адрес.
v1.241.0 · 25 октября 2026 г.
- Пайплайны, процесс продаж (PI.23): пакеты. У пайплайнов есть
packages(название, товар, ссылка на оплату,default),PUT /pipelines/{id}/packagesсохраняет весь список (не более одного по умолчанию, отсутствующие архивируются, только администраторы организации). У записей естьpackageId,packageNameиcheckoutLinkId;packageIdзадаётся вPOST /pipelines/entries,PATCH /pipelines/entries/{id}иmoveEntry(товар и сумма нетто из пакета, если в том же вызове нетvalueCents). Новый вид требованияpackage(путьbody.packageId). Пакет по умолчанию сам к новым записям не записывается. - Пайплайны, поддержка (PI.19b): утверждённый кредит SLA передаётся в выставление счетов и появляется как «скидка» в следующем счёте по подписке или следующем черновике. Новый
slaCredit.statusscheduledсscheduledAt; если передача не удалась, остаётсяreleasedсhandoverError, иPOST …/sla-credit/releaseпробует снова.
v1.240.0 · 23 октября 2026 г.
- Пайплайны, процесс продаж (PI.22): статус карточки, текущее положение дел на карточке независимо от этапа. У пайплайнов есть
cardStatuses(название, цвет, порядок,trigger), у записейcardStatusиcardStatusSince. Новое:PUT /pipelines/{id}/card-statusesсохраняет весь список (отсутствующие архивируются, только администраторы организации),GET /pipelines/{id}/card-statuses/reportвозвращает число открытых записей и время по этапу и статусу карточки, а также смены за период.PATCH /pipelines/entries/{id}задаётcardStatusId(null = без статуса),GET /pipelines/entriesфильтрует поcardStatusId(none= без статуса). Новое событиеpipelines.entry.cardStatusChangedсfromCardStatus,toCardStatus,triggerиvia; создание его не отправляет,createdуже содержит статус.
v1.239.0 · 23 октября 2026 г.
- Новое:
POST /invoices/{id}/collectсразу списывает оплату по открытому счёту подписки с карты или по мандату прямого дебета, не дожидаясь ежедневного запуска. Ответresult:charged(карта списана, подтверждение через вебхук) илиsubmitted(прямой дебет отправлен, оплачено после поступления денег). 409 сreasonnot-collectable,skippedилиcollection-failed.
v1.238.0 · 23 октября 2026 г.
- Новое: завершение сессии сопровождения (практика BP.3a).
POST /care-sessions/{id}/completeзавершает сессию и её сценарий за один шаг: сначала прохождение сguide.outcomeId(обязателен, если у сценария есть результаты) иguide.reasons(обоснование для каждого незакрытого обязательного шага; если его нет, 422 с путёмbody.guide.reasons.<шаг>); если это не удаётся, сессия остаётся открытой.POST /care-sessions/{id}/reopenснова открывает оба. Новое полеcompletedAt. Изменено: после завершенияrunningравно false (раньше четыре часа от начала), аstartдля завершённой сессии отвечаетconflictсsession-completed.
v1.237.0 · 23 октября 2026 г.
- Пайплайны, процесс продаж (PI.21): четвёртый тип закрытия
parked(добавляется в пайплайн черезPOST /pipelines/{id}/stagesсtype: "parked", не более одного раза). Для откладывания нужны причина иfollowUpAtв будущем, иначе 422 с путёмbody.followUpAt(видfollowUpвcheckMove). Записи содержатfollowUpAt; каждый переход задаёт его заново. Прогноз указываетparked(количество, сумма) и не учитывает отложенные записи. Триггерpipelines.entry.closedфильтрует и поoutcomeparked.
v1.236.0 · 23 октября 2026 г.
- У типов приёма появилось поле
callGuideId: сценарий разговора (GET /call-guides), предлагаемый в разговоре и на встрече этого типа. Чтение вappointments.getType/listTypes, запись вcreateType/updateType(null— без сценария). Только активный сценарий этой организации, иначеvalidation-failedдляbody.callGuideId.
v1.235.0 · 23 октября 2026 г.
- Изменено:
PATCH /contacts/{id}переносит изменённый адрес эл. почты или номер телефона на интересентов партнёров, связанных с этим контактом, и отклоняет изменение, вместо того чтобы контакт и интересент расходились: 409conflictсreason: prospect-email-taken, если новый адрес уже есть у другого интересента организации; 400validation-failedдляbody.email(required), если адрес интересента без названия компании был бы удалён; 409reason: prospect-not-saved, если интересента не удалось сохранить. Во всех трёх случаях контакт не изменён. Неизменённые поля ничего не запускают.
v1.234.0 · 22 октября 2026 г.
- Пайплайны, закрытие в поддержке (PI.19): этапы содержат
noReply(remindAfter,closeAfter,unitbusinessDaysилиdays): напоминание и закрытие без ответа на этапе с остановленными часами, оба с коротким письмом клиенту (каналsystem). Записи содержатnoReplyRemindAt,noReplyCloseAt,previousEntryId(ответ более чем через 14 дней после закрытия создаёт новое обращение; в течение 14 дней он снова открывает старое) иslaCredit(кредит один раз на обращение с нарушенным сроком, со структурированнымcalculation). НовыеPOST /pipelines/entries/{id}/sla-credit/releaseи…/discard(ORG_ADMIN, ORG_ACCOUNTANT; 409sla-credit-decided,sla-credit-zero). Источник сообщения через API теперьhumanс OAuth-доступом человека,aiчерез API-MCP, иначеautomatic. Прогноз указываетvalueModeиrisk; пайплайны поддержки возвращают там ожидаемые кредиты как отрицательные значения вместоnull.
v1.233.0 · 22 октября 2026 г.
- Пайплайны: два имени из 1.229.0 приведены к правилу для полей-счётчиков до выпуска: у SLA
caseCountвместоcasesCount, вslaTargets[]записиbreachCountвместоbreaches.
v1.232.0 · 22 октября 2026 г.
- Формы:
POST /responses/{id}/pdfтребуетforms:writeвместоforms:read, как любая конечная точка, создающая PDF (invoices.renderPdf,orders.renderPdf,time.renderReportPdf): она создаёт документ и запускает создание. Статус (GET /responses/{id}/pdf/{documentId}) остаётся сforms:read. Версия 1.231.0 сforms:readникогда не выпускалась.
v1.231.0 · 22 октября 2026 г.
- PDF отправки через API:
POST /responses/{id}/pdfсоздаёт PDF на бланке организации (202 сdocumentId,statuspending),GET /responses/{id}/pdf/{documentId}сообщает статус (pending,readyсurl,failed),POST /responses/{id}/pdf/{documentId}/sendотправляет его по e-mail клиенту карты. Формы карты клиента только с открытием клиентских данных,clients:readи доступом к картам у действующего лица; без доступа к картам 403forbiddenсreasonclient-access-required(теперь и дляPOST /form-templates/{id}/insert). Отправка: 422not-a-client-formилиcontact-without-email, 409pdf-not-ready.
v1.230.0 · 22 октября 2026 г.
- Шаблоны библиотеки форм через API:
GET /form-templates(собственные и предоставленные другими организациями, фильтрtargetEntity, поискq),GET /form-templates/{id}(предпросмотр в форме обращенияaddressForm),POST /form-templates/{id}/insert(новая форма из шаблона, 201 с определением иnotes),POST /form-templates(предоставить собственную форму, сtemplateIdкак новую версию) иDELETE /form-templates/{id}(только собственные; вставленные формы остаются). Чтение сforms:read, запись сforms:writeи только для администраторов организации; шаблон карты клиента только с доступом к картам (forbidden) и профилем практики (feature-not-available).targetEntityвGET /formsиGET /forms/{id}теперь называет все четыре цели (такжеVERTRIEBLER_PROFILиVERTRIEB_FIRMENPROFIL); ответы уже содержали их, не хватало описания.
v1.229.0 · 22 октября 2026 г.
- Пайплайны, поддержка с SLA (очередь 4): новый
/pipelines/slas(чтение, создание, изменение сarchived, удаление только неиспользуемых, иначе 409sla-in-use) с календарём (weeklyHoursкак часы работы), сроками по видам (firstResponse,nextResponse,update,restore,resolution) и приоритетам с явной единицей (minutes,hours,businessMinutes,businessHours,businessDays), последствием в виде кредита с лимитом, клиентами. НовыеGET/POST /pipelines/entries/{id}/messages(ответ клиенту уходит письмом;sourceопределяет сервер, через APIautomatic). Записи содержатdescriptionHtml,priority,requestedPriority,sla,slaStatus,slaDueAt,slaTargets,restoredAt(можно задать описание, приоритет,restored), этапыslaClock, пайплайныcustomerPortalRequests. Событияpipelines.entry.slaDueSoon,pipelines.entry.slaBreached,pipelines.message.created. Новая причинаnot-a-support-case.
v1.228.0 · 22 октября 2026 г.
- Замена форм через API:
PUT /forms/{id}заменяет форму целиком тем же телом, что иPOST /forms(заголовок со значениями по умолчанию, где ничего не указано, страницы, элементы). То, чего тело не знает, остаётся (разрешения, ссылки, завершение, отображение); прежние отправки остаются доступными. Ответ 200 с определением иbuild.targetEntityизменить нельзя (422 вbody.targetEntity); архивированная форма даёт 409conflictсreasonarchived, как вPOST /forms/{id}/responses, краткое имя другой формы 409form-slug-taken. Только администраторы организации, scopeforms:write. У причиныarchivedтеперь есть текст на странице ошибок.
v1.227.0 · 22 октября 2026 г.
- Создание форм через API:
POST /formsсоздаёт форму целиком (заголовок, страницы, элементы поkind:text,standardField,fieldсnewдля нового собственного поля,matrix,repeater; условия вcondition; флажки вconsents) тем же построителем, что и конструктор форм. Ответ 201 с определением как вGET /forms/{id}иbuild(createdFields,reusedFields,notes).POST /forms/validateпроверяет то же тело без сохранения (valid,errors,notes, запланированные страницы, элементы и поля).GET /forms/building-blocksперечисляет стандартные поля, существующие собственные поля, типы для новых полей, синтаксис условий и структуру матрицы и повторителя. Только администраторы организации (иначе 403forbidden); scopeforms:writeдля создания,forms:readдля проверки и строительных блоков. Ошибки 422validation-failedс путёмbody.pages.<i>.elements.<j>…(индексы с 0) и кодомinvalid_reference,required,invalid_value,invalid_combinationилиtoo_big; занятое краткое имя даёт 409conflictсreasonform-slug-taken(при проверке ошибка с этим кодом). Формы карты клиента только с профилем практики.
v1.226.0 · 22 октября 2026 г.
- Формы:
POST /forms/{id}/archiveиPOST /forms/{id}/unarchiveархивируют форму или возвращают её из архива, как в конструкторе форм (scopeforms:write, только администраторы организации, иначе 403forbidden; ключ без действующего лица получаетno-acting-user). Ответ 200 с формой; повторный вызов ничего не меняет. Архивированная форма ничего не принимает по своим ссылкам,POST /forms/{id}/responsesотвечает 409 (archived). Новое вGET /forms/{id}:consentMode, вид согласия формы (none,optional,promotion).
v1.225.0 · 22 октября 2026 г.
- Ключи партнёров (API лидов): помимо ключей организации есть ключи, привязанные ровно к одному партнёру (аффилиату); их выдаёт партнёр в портале партнёра или администратор организации. Ключ партнёра вызывает только
GET /forms/{id},POST /forms/{id}/responsesиPOST /appointment-types/{id}/partner-links, иначе 403forbiddenсreasonpartner-key-endpoint; API-MCP его не принимает. Он всегда отправляет данные для своего партнёра (другойaffiliateIdдаёт 422 вbody.affiliateId, кодpartner-affiliate), видит только формы, открытые для портала партнёра и создающие потенциальных клиентов (иначе 404), и только потенциальных клиентов своего партнёра. ВGET /forms/{id}responseCountтогда считает только отправки его партнёра, аpublicUrlравенnull. Инструкция: /developers/partner-leads.
v1.224.0 · 22 октября 2026 г.
- E-mail-кампании двух видов (
kind:marketingилиnotice). Уведомление (notice) отправляется всем из выборки без согласия на рекламу и без ссылки для отписки, использует шаблоны сpurposetransactional и не требует проверки перед стартом (deepCheckRequired). Содержимое теперь хранится в кампании:subject,bodyHtml,subjectInformal,bodyHtmlInformalиsalutation, скопированы из шаблона и изменяемы без изменения шаблона (templateсmodified). Кроме того,document(документ как личная ссылка для каждого получателя,linkExpiresDays) иattachment(PDF до 5 МБ).GET /email-campaigns/setupназываетkinds,personalSenderиkindдля каждого шаблона;GET /email-campaignsфильтрует поkind,POST /email-campaigns/recipient-countпринимаетkind. Новое:POST /email-campaigns/{id}/document/replace(исправленная версия, ссылки сохраняются), а такжеGETиPUT /email-campaigns/notice-permissions(кто помимо администраторов может отправлять уведомления). Участники с этим правом видят через API только уведомления и отправляют со своего личного адреса SendGrid (senderLocalPartиsenderDomainтогда можно не указывать); для администраторов всё остаётся как прежде.kindпосле создания изменить нельзя (422immutable). Новые ошибки: 422unknown-fieldвbody.bodyHtmlдля несуществующих полей, 403campaign-kind-not-allowed, 422notice-sender-missing,download-links-not-configuredиcampaign-document-missing.
v1.223.0 · 22 октября 2026 г.
- Формы: два значения
bookingErrorуPOST /forms/{id}/responsesтеперь называются так же, как уappointments.createPartnerLink(1.220.0):prospect-without-contactвместоcontact-missingиappointment-type-not-released-to-partnerвместоappointment-type-not-released. Старые названия из 1.221.0 никогда не выпускались.
v1.222.0 · 22 октября 2026 г.
- Новый вид оповещения
AUTOMATION_RUN_HALTED(вGET /organization/api-alertsиPUT /organization/api-alerts/rules/{kind}): если автоматизация останавливает выполнение по устранимой причине (precondition-failedсfixable: true), владелец и администраторы организации получают уведомление в колокольчике, по желанию также по e-mail, не чаще одного раза за 24 часа для каждого правила и причины. Исключение: недостающие обязательные данные этапа пайплайна, в этом случае по-прежнему создаётся задача.
v1.221.0 · 22 октября 2026 г.
- Формы:
POST /forms/{id}/responsesдополнительно принимаетappointmentTypeIdиsenderContactId. С типом приёма ответ дополнительно содержитbookingUrl, персональную партнёрскую ссылку для записи нового заинтересованного лица (запись у посредника без повторного ввода данных), илиbookingError, почему её нет:prospect-not-found(нет заинтересованного лица, например без посредника),contact-missing,appointment-type-not-released,sender-not-in-team,booking-failed. Если не удалась только ссылка, отправка сохраняется (201). Для этого ключу дополнительно нужно правоappointments:write, иначе 403insufficient-scopeдо отправки. С партнёрским ключом ссылка работает только для заинтересованных лиц своего посредника. БезappointmentTypeIdответ не меняется.
v1.220.0 · 22 октября 2026 г.
- Новое:
POST /appointment-types/{id}/partner-links(appointments.createPartnerLink) поprospectIdвозвращает персональную ссылку партнёра для записи этого потенциального клиента, существующую или новую (kindPARTNER, сcontactId,affiliateId,senderContactId). Те же правила, что и в портале партнёра: только типы приёма, открытые партнёру, отправитель из его команды (необязательноsenderContactId, иначе ответственный за потенциального клиента или владелец партнёра). Новые причины дляprecondition-failed:prospect-without-contact,appointment-type-not-released-to-partner.
v1.219.0 · 22 октября 2026 г.
- Пайплайны: сценарии прогноза называются
worst,normal,best(вforecast.months[].weightedCents, в группах и вeffectiveProbabilityэтапов), поля этапов для записи —probabilityWorst/probabilityBest. Они заменяютbad/goodиprobabilityBad/probabilityGoodиз версии 1.218.0, которая не выпускалась.
v1.218.0 · 22 октября 2026 г.
- Пайплайны, прогноз и обучение: новый
GET /pipelines/{id}/forecast(двенадцать месяцев начиная с текущего, взвешенная стоимость по месяцам в сценарияхbad,normal,good, группыoverdue,withoutDate,later, доля измерения, источник даты; по каждому открытому этапу действующая вероятность, время на этапе и срок до закрытия;forecastравенnullбез режимаrevenue). У этапов естьeffectiveProbability(действующая вероятность поlearningModeсо сценариями,measuredPercent,decidedCases) иprobabilityBad/probabilityGood(сценарии вручную, задаются черезPOST/PATCH .../stages). Поведение:learningModeтеперь действует;probabilityиweightedValueCentsзаписи без переопределения считаются по действующей вероятности этапа, а не по значению по умолчанию (приlearningModedefaultбез изменений).
v1.217.0 · 22 октября 2026 г.
- Пайплайны: в
couplingsестьprospectsRequired(потенциальные клиенты партнёров ведутся в этом пайплайне; если партнёр работает с клиентом без записи, портал просит привязать его) иprospectsAutomatic(создавать во входном этапе без вопроса), читаются вGET /pipelines/{id}, задаются черезPATCH /pipelines/{id}.
v1.216.0 · 22 октября 2026 г.
- Автоматизации: три новых действия для пайплайнов в каталоге (
GET /automation-catalog) и вPOST/PATCH /automations, по одному эндпоинту:pipelines.createEntry(создать запись),pipelines.moveEntries(установить этап, в том числе закрыть с причиной; последняя или все открытые записи контакта либо определённая) иpipelines.updateEntry(сумма, ответственный, дата закрытия). Обязательные данные этапа действуют и здесь: если чего-то не хватает, шаг завершается ошибкой, которую можно исправить. Новые виды фильтровpipelineиpipelineStage(«одно из») у триггеровpipelines.entry.*, при закрытииoutcome. Новые источники датpipelines.entry.expectedCloseDateиpipelines.entry.rotting(запись слишком долго на своём этапе). Источники полейpipeline,pipelineStage,pipelineReason, объектentry. Исправлено: фильтры «одно из» до сих пор не действовали для триггеров по дате.
v1.215.0 · 22 октября 2026 г.
- Пайплайны, связи: у пайплайнов есть
couplings(quoteValue,quoteAcceptedStageId,paidMeansSuccessful,leadSources), читаются вGET /pipelinesиGET /pipelines/{id}, задаются черезPATCH /pipelines/{id}(leadSourcesзаменяет список целиком). НовыеGET /pipelines/assignmentsиPOST /pipelines/assignments/{id}/resolve: открытые привязки оплат, принятых предложений и лидов к записи, если запись неоднозначна. НовыйPOST /pipelines/entries/moveдля автоматизаций: задать этап конкретной записи, самой новой открытой или всех открытых записей контакта; всё или ничего, недостающие данные какprecondition-failedсstage-requirements-missingиfixable: true.
v1.214.0 · 22 октября 2026 г.
- Пайплайны: у этапов есть необязательный цвет
color(один из двенадцати цветов категорий, какcolorв сценариях звонков;null— без цвета), читается вGET /pipelines/{id}и задаётся черезPOST /pipelines/{id}/stagesиPATCH /pipelines/{id}/stages/{stageId}. У пайплайна естьstageColorDisplay(dot— точка рядом с названием,fill— заголовок в полном цвете), по умолчаниюdot, задаётся черезPATCH /pipelines/{id}.
v1.213.0 · 21 октября 2026 г.
- Новое: материалы к занятию для комнаты (область
appointments).GET/PUT /appointment-types/{id}/lesson-mediaчитает или заменяет список типа встречи (assetIds, не более 50, порядок =position).GET/PATCH /appointments/{id}/lesson-mediaпоказывает действующий список встречи (media) и её отличия (added,hidden);addдобавляет материалы только к этой встрече,hideскрывает материалы типа встречи, заданное поле заменяет свой список. После окончания встречи 422precondition-failedсappointment-ended.GET /lesson-media/optionsищет видео и PDF в библиотеке (q). Изменение требует права управлять встречами.
v1.212.0 · 21 октября 2026 г.
- Формы, только поведение, для отправок по публичной ссылке (
/f/…): если человек надёжно известен (персональная ссылка на контакт, запомненное устройство или адрес e-mail, подтверждённый кодом) и для именно этого адреса или номера в поле есть согласие на рекламу не старше 24 месяцев и не отозванное, форма не спрашивает повторно. Отправка (GET /forms/{id}/responses,GET /responses/{id},forms.response.submitted) тогда не содержит для этого канала записи сpurposeMARKETING; это не отказ, состояние согласия хранится у контакта. Поставленная галочка отображается как прежде. Отправки черезPOST /forms/{id}/responsesэто не затрагивает.
v1.211.0 · 21 октября 2026 г.
- Новое: пайплайны (раздел
pipelines, праваpipelines:readиpipelines:write).GET/POST /pipelines,GET/PATCH /pipelines/{id}, этапы (/pipelines/{id}/stages, порядок черезPUT …/stages/order) и причины закрытия (/pipelines/{id}/reasons); пайплайны и этапы ведут только администраторы организации. Записи в/pipelines/entries: создание, изменение,move(также закрытие),move/check,reopen,history. При перемещении действуют те же требования, что и в приложении, при пропуске — суммарно: если чего-то не хватает, вернётся 422 с ошибкойstage-requirementна каждое; при запрете —precondition-failedсstage-skip-lockedилиstage-back-locked(fixable: false), архивный пайплайн —pipeline-archived(fixable: true). Событияpipelines.entry.created,.stageChanged,.closed,.valueChanged. Суммы какvalueCents. ТакжеDELETE /articles/{id}: 409in-useи тогда, когда записи пайплайнов берут сумму из этого артикула (usage.pipelineEntries).
v1.210.1 · 21 октября 2026 г.
- Поведение: источник
mollieпрогноза подписок (/provider-subscriptions) возвращает цифры, как только организация подключит Mollie с разрешениемsubscriptions.read(новые подключения его запрашивают, существующие подключаются заново один раз). Считываются подписки всех профилей Mollie организации, синхронизация ночью и черезPOST /provider-subscriptions/sync;netCentsостаётся пустым (Mollie не указывает нетто). До повторного подключения остаётсяneeds-reconnect. Спецификация не меняется.
v1.210.0 · 21 октября 2026 г.
- Новое: прогноз подписок, созданных непосредственно у платёжного провайдера (не собственных подписок claritos в
/subscriptions).GET /provider-subscriptionsвыводит зеркало (фильтрsource:stripe-connect,stripe-platform,mollie;status;contactIdпо e-mail).GET /provider-subscriptions/forecastвозвращает по каждой валюте текущий месяц с сегодняшнего дня и следующие одиннадцать месяцев, брутто или сnet=trueнетто, а для каждого источникаstate,syncedAt,needsReconnect.POST /provider-subscriptions/syncзапускает синхронизацию (202; 409sync-lockedсretryAfter, 409source-not-ready). Праваsubscriptions:readиsubscriptions:write. Mollie сообщаетneeds-reconnect, пока организация не подключит Mollie заново с доступом к подпискам.
v1.209.0 · 21 октября 2026 г.
- Изменено:
GET /affiliates/activityтеперь учитывает вemailsи письма из почтовых ящиков партнёров в партнёрском портале (почтовый клиент и сценарии разговора), в том числе по человеку (people[].counts.emails, раньшеnull). Сохраняются только время, человек и число получателей, без содержания; учёт с момента введения. Отправки рекламных материалов учитываются только до первой такой записи организации, иначе одно письмо считалось бы дважды. Пример исправлен:previousPeriodтой же длины, что иperiod.
v1.208.0 · 21 октября 2026 г.
- Новое: подписка непосредственно из первого счёта. У счетов есть поле
subscription(intervalMonthsот 1 до 60,periodsот 2 до 600 илиnull= до расторжения;null= без подписки), доступное для чтения и записи черезPOST /invoicesиPATCH /invoices/{id}. При фиксации (POST /invoices/{id}/issue) создаётся подписка, счёт становится её первым периодом (billingContractId); период оказания услуг устанавливается на этот период. Ошибки: 422 вbody.subscription…,body.contactIdилиbody.items, 409subscription-exists. - Новое: статус подписки
AWAITING_FIRST_PAYMENT(GET /subscriptions, фильтрstatus): создана из счёта, первый счёт ещё не оплачен. После оплаты подписка переходит вACTIVE, а подлежащие выставлению последующие счета создаются сразу; сторнирование первого счёта переводит её вCANCELLED. Клиентам, знающим только прежние четыре значения, не следует считать неизвестный статус действующим.
v1.207.0 · 21 октября 2026 г.
- Новое:
GET /affiliates/activityвозвращает активность аффилиатов, как блок на панели: звонки и время разговоров, встречи (по записи и в видеокомнатах), продажи с выручкой по валютам, новые интересенты, сообщения (e-mail, SMS, письма) и выполненные задачи по аффилиату и человеку за период отfromдоto(по умолчанию последние 30 дней) и за такой же период до этого. ФильтрaffiliateId. Только с управлением аффилиатами в лицензии, иначе403 feature-not-available.
v1.206.0 · 21 октября 2026 г.
- Новое:
GET /contactsфильтрует по ответственному с параметромresponsible, через запятую (не более 20): идентификаторы пользователей-участников,meдля действующего лица ключа,partnerдля контактов, которые ведёт только партнёр. Действует то же правило, что и в фильтре «Ответственный» в приложении (участник перед партнёром; покинувший организацию не учитывается);responsible=meсоответствует переключателю «Только мои». Ключ без создателя получает дляme422no-acting-user, неизвестное значение 400validation-failed.
v1.205.1 · 21 октября 2026 г.
- Исправлено:
DELETE /invoices/{id}отвечал на черновик 204, не удаляя его (с 1.179.0; затронут каждый черновик, не относящийся к расчёту кредитов). Теперь он удаляется. Если при этом не удалена ни одна строка (например, потому что черновик в тот же момент был зафиксирован), эндпоинт отвечает 404not-foundвместо 204. Черновики расчёта кредитов по-прежнему дают 409credits-run.
v1.205.0 · 21 октября 2026 г.
- Изменено:
POST/PATCH /message-templatesпринимают поле{{terminlink.<id-типа-встречи>}}(ранее 400unknown-field). Допустимы приusage: contactsтипы встреч с персональной ссылкой, для партнёрского портала открытые для партнёров; иначе 400unknown-fieldс указанием типа встречи. При отправке из поля получается персональная ссылка для записи для каждого получателя (в HTML ссылкой). Новое: если её нельзя создать для контакта,POST /outbound-emailsиPOST /smsсvorlageIdотвечают 422 иreason: booking-link-unavailable, а не отправляют письмо с пустым местом.
v1.204.0 · 21 октября 2026 г.
- Новое:
reminderServiceвPOST /appointments: клиент хочет получать напоминания о приёме (сервис напоминаний), только по его прямой просьбе, без указания — нет; только для индивидуального приёма, фиксируется для адреса электронной почты и мобильного номера контакта с источником «API»; ранее сделанный клиентом отзыв остаётся. Изменено: напоминания перед приёмом снова планируются для клиентов, но отправляются только при этом согласии (проверка при отправке, именно для этого адреса или номера), и каждое содержит ссылку для отписки. Подтверждение, отмена и перенос отправляются всегда.
v1.203.0 · 20 октября 2026 г.
- Новое:
contactIdвPOST /appointment-types/{id}/linksвозвращает персональную ссылку записи этого контакта, существующую или новую (kindPERSONAL): приём привязан к контакту; если у типа приёма нет анкеты, запись идёт без дополнительных данных. Для типа приёма нужно разрешение «персональная ссылка»; новые причины дляprecondition-failed:appointment-type-not-personal,appointment-type-internal-only. БезcontactId, как и раньше, новая открытая ссылка.
v1.202.0 · 20 октября 2026 г.
- Новое:
reminderPlanIdвPOST /appointment-typesиPATCH /appointment-types/{id}назначает типу встречи план напоминаний (GET /appointment-reminder-plans),null— без напоминаний. Если не указан, новый тип встречи получает план организации по умолчанию, существующий сохраняет свой. Изменено: напоминания перед встречей не планируются для клиентов, пока они не согласятся на сервис напоминаний; подтверждение, отмена и перенос отправляются всегда.
v1.201.0 · 20 октября 2026 г.
- Напоминания о задачах (ядро KR.41). Новое:
GET /tasks/reminder-settingsиPUT /tasks/reminder-settings(tasks:read/tasks:write, запись только для администраторов организации) читают и задают настройки: моменты до срока вminutesBefore(0, 15, 60, 180, 1440, 2880, 10080; неизвестные значения отбрасываются без ошибки) и способы вchannels(BELL,EMAIL,SMS). Без сохранённых настроек действует колокольчик в срок; эл. почта и SMS только после включения администратором. Задачи со сроком теперь вызывают напоминания ответственному, в том числе созданные через API. Новое у задачи:dueHasTime(содержит лиdueDateвремя). При записиdueDateдата без времени или полночь UTC считается датой без времени; без времени срок наступает в свой день, напоминание приходит в 8:00 (Берлин).kindу SMS (GET /sms, событияsms.message.*) получил новое значениеTASK_REMINDER.
v1.200.0 · 20 октября 2026 г.
- Новое:
PATCH /telephony(telephony.updateOptions) включает или выключает распознавание автоответчика организации (answeringMachineDetection), аGET /telephonyпоказывает его состояние в новом полеansweringMachineDetection(без подключённого аккаунтаfalse). Изначально распознавание включено для каждой организации: при исходящих звонках Twilio сообщает, ответил ли человек, автоответчик или факс; это нужно статистике звонков, чтобы считать голосовую почту. Оно работает в фоне, вызываемый абонент не ждёт, а Twilio взимает плату за каждый принятый звонок со счёта организации. Только ORG_ADMIN, правоtelephony:write.
v1.199.0 · 20 октября 2026 г.
- Новое: сессии сопровождения (практика BP.2).
GET /care-enrollments/{id}/sessionsвыводит открытые сессии,GET /care-sessions/{id}читает одну.POST /care-enrollments/{id}/sessions/openоткрывает сессию на позиции копии (при первом открытии создаётся, затем та же),POST /care-enrollments/{id}/sessionsсоздаёт внеплановую сессию вне плана (adHoc, безposition; например при кризисе, только в активном или приостановленном сопровождении, иначеconflictсenrollment-ended).POST /care-sessions/{id}/startначинает сессию:runningравно true в течение четырёх часов.PATCH /care-sessions/{id}задаёт тип сессии (standard,safety,gentle,catch-up,relief) с краткой причиной. Права как у сопровождений:careplans:read/:writeиclients:read/:write, разрешение на данные клиентов, журнал доступа. У прохождения сценария сессии нет эндпоинта; его ID указан вguideRunId.
v1.198.0 · 20 октября 2026 г.
- Формы, только поведение, для отправок по публичной ссылке (
/f/…): (1) Если в форме с рекламой e-mail или телефон подтверждаются ссылкой после отправки, согласие на рекламу запрашивается только после отправки. «Да» затем добавляется к отправке:GET /forms/{id}/responsesиGET /responses/{id}показывают принятое согласие сpurposeMARKETING, которого не было вforms.response.submittedпри отправке; отдельного события для последующего «да» нет. «Нет» ничего не оставляет. Согласие на рекламу вступает в силу только после перехода по ссылке в подтверждении. (2) Новый вид согласия «рекламная акция»: кнопка отправки выражает желание получать рекламу, текст стоит над ней. Отправка содержит согласие какacceptedtrue, хотя галочка не показывалась. Отправки черезPOST /forms/{id}/responsesэто не затрагивает; там согласия на рекламу остаются галочками. - Только документация: пример
GET /forms/{id}теперь показывает необязательную галочку для рекламы (purposeMARKETING,requiredfalse) вместо отменённой галочки запроса (purposeINQUIRY, с 1.197.0). Пример отправки сохраняетINQUIRY, потому что прежние отправки его содержат.
v1.197.0 · 20 октября 2026 г.
- Формы, только поведение: обязательная галочка «связь по моему запросу» (
purposeINQUIRY) отменена. Для ответа на запрос согласие не нужно; вместо этого форма показывает уведомление о защите данных.GET /forms/{id}больше не указывает вconsentsсогласие сINQUIRY. Согласия на рекламу (MARKETING) и прежние галочки, объединяющие запрос и рекламу (purposenull, канал e-mail или телефон), появляются, только если форма разрешает рекламу; это значение по умолчанию для всех существующих форм. Собственные согласия (каналCUSTOM) не изменились.POST /forms/{id}/responsesбольше не требует галочку запроса для e-mail или телефона:validation-failedсbody.consents.<elementId>теперь возникает только для собственных обязательных согласий и прежних объединённых галочек. Переданноеtrueдля отменённой галочки не является ошибкой, оно не сохраняется. Новые отправки (GET /forms/{id}/responses,forms.response.submitted) иconsent/consentPurposesсобытияleads.lead.createdбольше не содержатINQUIRY; прежние отправки его сохраняют, поэтому значение остаётся в схеме.
v1.196.0 · 20 октября 2026 г.
- Изменено: серии встреч содержат до 100 шагов вместо 10. В
POST /appointment-series-templatesиPATCH /appointment-series-templates/{id}полеstepsпринимает от 2 до 100 шагов,samePersonAsStepдо 100; так жеappointmentsвPOST /appointment-series,{step}в/appointment-series/{id}/steps/{step}иfollowingвPOST /appointments/{id}/reschedule-with-series.
v1.195.0 · 19 октября 2026 г.
- Изменено: текст шага напоминания (
bodyHtml, также вinformal) вPATCH /appointment-reminder-steps/{id}теперь сохраняет только разметку редактора: абзацы, полужирный, курсив, подчёркивание, зачёркивание, списки и переносы строк. Ссылка превращается в свой текст, изображения и атрибуты удаляются. Подтверждение, отмена и перенос отправляются всегда и не должны содержать рекламных элементов.
v1.194.0 · 19 октября 2026 г.
- Новое, только для ORG_ADMIN: читать оповещения API организации (
GET /organization/api-alerts: вызовы и ошибки за 24 часа и 7 дней, правила по видам, последние оповещения, адрес оповещений), настроить вид оповещения (PUT /organization/api-alerts/rules/{kind}) и задать адрес оповещений (PUT /organization/api-alerts/email). Кроме того, читать установки приложения claritos в LeadConnector (GET /organization/integrations/leadconnector) и отключать установку (DELETE /organization/integrations/leadconnector/{id}); устанавливают по-прежнему в самом LeadConnector. Праваorganization:readилиorganization:write.
v1.193.0 · 19 октября 2026 г.
- Новое событие
careplans.enrollment.resumed: приостановленное сопровождение снова идёт (статусACTIVEизPAUSED). Полезная нагрузка как у остальныхcareplans.enrollment.*(только идентификаторы и состояния); данные клиентов, только на endpoints сclientsData. Доступно и как триггер автоматизаций.
v1.192.0 · 19 октября 2026 г.
- Новое:
firstSessionIsOnboardingвGET /care-plans/{id}(и в ответах остальных endpoints шаблонов) и вcopyсопровождений.trueозначает: сессия 1 является онбордингом и в интерфейсе называется сессией 0; позиции, серия и временные окна по-прежнему считаются с 1. Записывается вPOST/PUT /care-plansи в пробном прогонеPOST /care-plans/validate, необязательно; без указанияfalse, также приPUT, потому что дерево заменяется целиком.
v1.191.0 · 18 октября 2026 г.
- Новое: область
careplans(планы сопровождения практики), праваcareplans:read/careplans:write, группа «Контакты и клиенты». Шаблоны:GET/POST /care-plans,GET/PUT/DELETE /care-plans/{id},GET /care-plans/options, пробный прогонPOST /care-plans/validate,POST /care-plans/{id}/release,…/retire,…/versions. План записывается целиком (заголовок, фазы, сессии), изменить можно только собственный черновик (409plan-not-draft), пробелы до утверждения перечислены вgaps. Сопровождения (данные клиентов, дополнительноclients:read/clients:writeи разрешение данных клиентов, журнал доступа):GET/POST /care-enrollments,GET /care-enrollments/{id},GET /clients/{id}/care-enrollments,POST /care-enrollments/{id}/events,…/status, приёмы черезGET …/appointment-proposalиPOST …/appointments(плюсappointments:read/appointments:write). Везде лицензионное право практики и действующее лицо с доступом к картам клиентов; утверждение и отзыв только с правом утверждения. Событияcareplans.enrollment.started,.paused,.ended(только на endpoints сclientsData, только идентификаторы и состояния).
v1.190.0 · 18 октября 2026 г.
- Новое в разделе
biomarkers: наборы правил биомаркеров.GET/POST /biomarker-rule-sets,GET/DELETE /biomarker-rule-sets/{id},PUT …/{id}/rules(правила целиком),POST /biomarker-rule-sets/validate(пробный прогон без сохранения),POST …/{id}/confirmи…/{id}/unconfirm. Условия на английском (value,unit,present/missing), маркеры как ключи списка практики. Подтверждать может только пользователь с правом утверждения, никогда автоматизация (403confirm-needs-person); подтверждённый набор не изменяется (409rule-set-confirmed).
v1.189.1 · 18 октября 2026 г.
- Поведение: продление срока (
POST /dunning/open-items/{openItemId}/extension,dueDate) теперь действует до конца предоставленного дня (UTC), а не только до 00:00. Поэтому в сам предоставленный день повторное продление отвечает 409extension-exists, а процедура напоминаний продолжается только со следующего дня. Сохранённая и напечатанная дата не меняются. - Поведение:
DELETE /articles/{id}теперь отвечает 409in-useтакже, если артикул есть в позициях предложений или заказов (любой статус), в договорах подписки, в кредит-нотах комиссий, в настройках организации, является артикулом комиссии кампании или привязан к хуку доступа. Для этого вusageесть поляquoteLines,orderLines,subscriptionLines,commissionCreditLines,accessHooks,organizationSettings,campaignCommissions. Вместо удаления: архивировать.
v1.189.0 · 18 октября 2026 г.
- Новое: раздел
biomarkers(биомаркеры практики, только при праве организации «Практика»).GET /biomarker-profilesвыдаёт профили биомаркеров со статусом, версией, количеством маркеров иdeletable/deleteBlockedBy;DELETE /biomarker-profiles/{id}удаляет профиль, пока он ни разу не использовался (не утверждался, не входит в заявку в лабораторию, не передавался, нет следующей версии), иначе409 conflictсreason. Чтение и запись требуют действующего пользователя с доступом к картам; профили не являются данными клиентов.
v1.188.0 · 18 октября 2026 г.
- Новое в
mailboxes.*:attachmentHandling(receipt,receiptStack,documentилиnull) задаёт, как обрабатываются вложения писем в общий почтовый ящик, как адреса по видам на inbox.claritos.io. Каждый вид принадлежит не более чем одному общему почтовому ящику в организации; иначе 409 сreason: handling-taken. Личные почтовые ящики всегда возвращаютnull.
v1.187.0 · 18 октября 2026 г.
- Новые права
biomarkers:read/biomarkers:writeдля биомаркеров практики (профили с референсными значениями). Они подготовлены для адресов, которые появятся позже; до тех пор они не дают доступа. Существующие ключи и доступы OAuth не получают их автоматически.
v1.186.0 · 18 октября 2026 г.
- Новое в разделе
credits: расчёты (/credits/runs: предварительный расчёт, список, чтение, запуск, проведение, отмена, сторно, отправка и пересоздание выписок; запуск, проведение и сторно выполняются в фоне, ответ 202), импорт (/credits/import-profiles: профили, проверка, загрузка, идентификаторы, перенос остатка, основные данные;POST /credits/import-files/header; список в Base64, не более 600 КБ), покупки с портала (/credits/portal-purchases, счета к ним сinvoices:write), комиссии (/credits/commissions, сверка) и курирование (PUT /credits/accounts/{id}/supervision,DELETE /credits/supervisions/{id}).
v1.185.0 · 18 октября 2026 г.
- Новое: раздел
credits(программа кредитов, только при правеCREDITSорганизации): программыGET/POST /credits/programs,GET/PATCH /credits/programs/{id},PUT/DELETE …/{id}/logo; счетаGET/POST /credits/accounts(список сfrom/to),GET/PATCH /credits/accounts/{id},POST …/{id}/entries(ручное начисление или корректировка),PUT …/{id}/bonus-rules. Запись требует действующего пользователя с ORG_ADMIN или ORG_ACCOUNTANT. Значения на английском (WEEKLY,PREPAID,USAGE,GRANT…).
v1.184.0 · 18 октября 2026 г.
- Новое: отчёты по времени в разделе
time:GET /time-reports(фильтр по проекту и статусу),GET /time-reports/preview,POST /time-reports(фиксация времени проекта за период),GET /time-reports/{id}(с записями),POST …/{id}/discard,POST …/{id}/pdfиPOST …/{id}/bill(черновик счёта; нужныtime:writeиinvoices:writeи действующий пользователь, создаётinvoices.invoice.created). Выставление отклоняет время, уже выставленное другим отчётом (entries-already-billed).
v1.183.0 · 18 октября 2026 г.
- Новое: шаблоны счетов в разделе
templates: условия оплаты (/payment-terms) и вступительные и заключительные тексты (/text-blocks), с чтением, созданием, изменением, удалением иPOST …/{id}/default; неформальные варианты вinformal. Удаление отправляет в архив шаблон, который ещё используется в документах, контактах или настройках кредит-нот (mode: archived). А такжеGET/PATCH /contacts/{id}/billing-defaults(разделcontacts).
v1.182.0 · 18 октября 2026 г.
- Новое:
GET /payments/events(события платежей подключения Stripe, фильтр по серьёзности и виду,onlyProblems), расчёты возмещения ущербаGET/POST /settlementsиGET /settlements/{id}(областьinvoices; создание требует действующего лица иconfirmGenuineDamage: true), а такжеPOST /files/rich-images(подписанный адрес загрузки изображений для форматированных описаний; первый эндпоинт в областиfiles).
v1.181.0 · 18 октября 2026 г.
- Артикулы полностью:
DELETE /articles/{id}(только неиспользуемые; иначе409 conflictсin-useиusage, тогда архивируйте), значок черезPOST /articles/{id}/icon-upload,POST /articles/{id}/iconиDELETE /articles/{id}/icon,GET /articles/catalog-range(ценовой диапазон номера каталога). При создании и изменении — новыеgroupName,isSelectableиcatalog; при чтении дополнительноusageCount. Новое событиеarticles.article.deleted.
v1.180.0 · 18 октября 2026 г.
- Счета полностью:
POST/DELETE /invoices/{id}/service-rendered(услуга оказана с проводкой, ровно один раз), исправления по § 31 абз. 5 UStDV (GET/POST /invoices/{id}/correction-notes,GET …/correction-notes/{correctionId}/email,POST …/send), план платежей (GET /invoices/{id}/installment-plan,POST …/installment-plan/collect,POST …/installment-plan/accelerate),GET /invoices/{id}/fee-schedule-check(GebüH), разрешение отправки (POST /invoices/release-dispatch) и прогоны по плану (GET /invoices/plan-runs,POST /invoices/plan-runs/release,POST /invoices/plan-runs/direct-debit; разрешение и перевод только ORG_ADMIN), а также счёт к платежам Stripe (GET /invoices/stripe-payments,POST /invoices/stripe-payments/prepare,POST /invoices/stripe-payments/invoice; только ORG_ADMIN и ORG_ACCOUNTANT).
v1.179.0 · 18 октября 2026 г.
- Счета:
DELETE /invoices/{id}(только черновики; иначе409 conflictсnot-draft, черновики прогона кредитов —credits-run),POST /invoices/{id}/duplicate,GET /invoices/{id}/email(предложение),POST /invoices/{id}/send(сам не выставляет:409 conflictсnot-issued; счета, выставленные задним числом, —awaiting-release),POST /invoices/{id}/mark-sent(отправка вне claritos, всегда текущим моментом),GET /invoices/{id}/refund-preview,POST /invoices/{id}/pdf(сформировать предпросмотр и дождаться) иPOST /invoices/{id}/pdf/regenerate(заново сформировать официальный PDF). Сторно черезPOST /invoices/{id}/correctтеперь принимаетrefundDays(срок возврата). - Изменение поведения:
POST /invoices,POST /invoices/{id}/issueиPOST /invoices/{id}/correctтребуют действующего лица (no-acting-user), ранее500 internalдля ключа без создателя.GET /invoices/{id}/pdfиPOST /quotes/{id}/convertтребуют его только при формировании PDF или если предложение нужно сначала выставить; предложения писем (GET …/emailдля счетов, заказов и предложений) работают без лица — с подписью и отправителем организации. Копирование счёта теперь генерируетinvoices.invoice.created.
v1.178.2 · 18 октября 2026 г.
- Поведение, спецификация та же:
POST /open-items/{id}/paymentsтеперь требует действующего лица, если создаётся проводка, и без него отвечает403 no-acting-user. Ранее ключ без создателя завершался там ошибкой500 internal.markOnly: true(без проводки) по-прежнему работает без действующего лица.
v1.178.1 · 18 октября 2026 г.
- Поведение, спецификация та же:
POST /tasks,POST /tasks/{id}/commentsиPOST /time-entries(безuserId) для ключа API без указанного создателя теперь отвечают403 no-acting-userвместо500. Раньше в ядро передавался пустой пользователь. Для доступа OAuth и ключей с создателем ничего не меняется; дляPOST /time-entriesявно переданныйuserIdостаётся действительным.
v1.178.0 · 18 октября 2026 г.
- Заказы полностью:
POST /orders(черновик с настройками контакта, позиции и разделы можно передать сразу),PATCH /orders/{id}(до первого выставления счёта, иначе409 conflictсlocked),DELETE /orders/{id}(только черновики без номера, иначеnot-draft),POST /orders/{id}/issue(номер заказа и PDF),POST /orders/{id}/send(подтверждение заказа по e-mail),GET /orders/{id}/email(предложение),POST /orders/{id}/duplicate,POST /orders/{id}/pdf(сформировать предпросмотр или выставленную версию и дождаться её),POST /orders/{id}/invoices(частичный, итоговый или авансовый счёт как черновик; дополнительно нуженinvoices:write),POST /orders/{id}/lines/{lineId}/dropи…/restore(исключить позицию и вернуть её; если количества тем временем изменились —409 conflictсline-changed). Создание, копия, выставление, отправка и PDF требуют действующего лица. - Новое событие
orders.order.sent: подтверждение заказа отправлено по e-mail из приложения или через API, сsentTo. - Изменение поведения предложений:
POST /quotes,POST /quotes/{id}/issue,POST /quotes/{id}/sendиGET /quotes/{id}/pdf(если формируется предпросмотр) теперь требуют действующего лица и без него отвечаютno-acting-user. Ранее ключ без создателя завершался там ошибкой500 internal.
v1.177.0 · 18 октября 2026 г.
- Предложения полностью:
GET /quotes/{id}/email(предложение письма с отправителем и готовностью к отправке),POST /quotes/{id}/remind(напомнить сейчас, только SENT),POST /quotes/{id}/duplicate(глубокая копия как черновик; требуется действующее лицо),DELETE /quotes/{id}(только черновики без номера, иначе409 conflictсnot-draft) и вложения:GETиPOST /quotes/{id}/attachments,DELETE /quotes/{id}/attachments/{documentId},PUT /quotes/{id}/attachment-order.
v1.176.0 · 18 октября 2026 г.
- Новое: дела о взыскании.
GET /dunning/collection-cases(фильтрstatus:pending,released,withdrawn,all),GET /dunning/collection-cases/{id},POST …/release(recipientEmail,coverLetterHtml; claritos собирает дело из счёта, подтверждения услуги и PDF напоминаний и отправляет его коллекторскому агентству; требуется действующее лицо) иPOST …/withdraw(пока дело не передано). Подтверждение и отзыв защищены от одновременных вызовов (409 conflictсwrong-status).
v1.175.0 · 18 октября 2026 г.
- Новое: запись напоминаний.
POST /dunning/reminders/{id}/finalize(номер, проводка, PDF),…/regenerate,…/discard(только черновики),GET …/email(предложение письма-напоминания) иPOST …/send(недостающие поля из предложения;409 conflictсsender-reconnect-required, если почтовый ящик нужно переподключить),POST /dunning/reminders/regenerate-unsent,POST /dunning/open-items/{openItemId}/extension(продление срока сdueDateиreason) иPOST /dunning/run(прогон, 202). Фиксация, пересоздание, письмо и отправка требуют действующего лица (no-acting-user). Новое событиеdunning.reminder.finalized, также как триггер автоматизаций.
v1.174.0 · 18 октября 2026 г.
- Новое: наборы и ступени напоминаний — первые адреса с записью в разделе напоминаний.
GETиPOST /dunning/profiles(seedPresetсоздаёт стандартные ступени),GET,PATCH(isDefault: trueделает набор набором по умолчанию) иDELETE /dunning/profiles/{id}(архивирует),POST /dunning/profiles/{id}/duplicate; ступениPOST /dunning/profiles/{id}/levels,PATCHиDELETE /dunning/levels/{id},PUT /dunning/profiles/{id}/level-order,PUT …/sepa-return-levelиPUT …/extension-levels/{variant}(pre-final,post-final; без полей — шаблон). Набор контакта:GETиPUT /dunning/contacts/{contactId}/profile. Тексты ступеней с неформальными версиями (…Informal). Праваdunning:readиdunning:write.
v1.173.0 · 18 октября 2026 г.
- Новое: событие
subscriptions.subscription.ended, когда подписка действительно завершилась: на следующий день после последнего оплаченного дня, при любом пути (расторжение, запланированное окончание, смена подписки, исчерпанный срок), один раз на каждое окончание. Данныеsubscription,endedAt(начало дня после последнего оплаченного дня) иreason(cancelledилиcompleted). Предназначено для «закрыть доступ»; оно привязано к окончанию, а не к расторжению. Кроме того,subscriptions.subscription.cancelledтеперь сообщает и о запланированном окончании договора (маркетплейс к концу срока); тамstatusостаётсяACTIVEдо окончания, решающим являетсяcancelEffectiveDate.
v1.172.0 · 18 октября 2026 г.
- Новое: подписки.
GET /subscriptions(фильтрыstatus,contactId,due),GETиPATCH /subscriptions/{id}(autoSend,ownDirectDebitOffered),POST /subscriptions/{id}/pause,/resumeи/cancel(к концу последнего выставленного периода, без возврата),PUT /subscriptions/{id}/payment-method(закрепить платёжное средство Stripe или перейти на банковский перевод значениемnull; дляMOLLIEэто прекращает мандат,mandateOutcome) иPOST /subscriptions/generate-due(создать последующие счета к выставлению сейчас). Новые событияsubscriptions.subscription.paused,.resumedи.cancelled(в том числе при расторжении в клиентском портале), также как триггеры автоматизаций. Праваsubscriptions:readиsubscriptions:write.
v1.171.1 · 18 октября 2026 г.
- Хуки доступа теперь принимают только публичные адреса https: без учётных данных в адресе, без внутреннего имени хоста, без частного IP-адреса, в том числе после разрешения DNS. Иначе
POST /checkout/hooks,PATCH /checkout/hooks/{id}иPOST /checkout/hooks/{id}/testотвечают422 validation-failedсurl-not-allowed(илиdns-failed, если имя не разрешается). Доставка идёт без перенаправлений и только на адрес, проверенный при подключении.
v1.171.0 · 18 октября 2026 г.
- Новое: хуки доступа для выставления счетов. Хук уведомляет внешнюю систему о платежах (
onIntentSucceeded,onPaymentCompleted,onPaymentFailed), например чтобы открыть или закрыть доступ к курсу.GETиPOST /checkout/hooks,GET,PATCHиDELETE /checkout/hooks/{id},POST /checkout/hooks/{id}/rotate-secret,DELETE /checkout/hooks/{id}/secret,POST /checkout/hooks/{id}/reactivateиPOST /checkout/hooks/{id}/test(202). Секрет возвращается, только если его создаёт claritos (generateSecretпри создании,rotate-secretбез собственного), и только в этом ответе; в остальных случаях естьhasSecret. Назначение по целям:GETиPUT /checkout/hook-assignments/{targetType}/{targetId}сcheckout-link,article,quoteилиorder. Управление требует пользователя с ролью ORG_ADMIN (no-acting-userилиforbidden), чтение и назначение — нет.
v1.170.0 · 18 октября 2026 г.
- Новое: коды скидок для оформления заказа.
GETиPOST /checkout/discount-codes,GET,PATCHиDELETE /checkout/discount-codes/{id}: скидка в процентах (PERCENT,percent) или фиксированная в центах (FIXED,amountCents), по желанию срок действия, максимальное число применений, партнёр и привязка к отдельным ссылкам на оплату (checkoutLinkIds, пусто = все). Безcodeclaritos создаёт читаемый код, при желании сcodePrefix. Фильтрcodeпоказывает, занят ли код,checkoutLinkId— коды, действующие для ссылки. Применённый код нельзя удалить (409 conflictсredeemed; тогдаactive: false). Праваcheckout:readиcheckout:write.
v1.169.0 · 18 октября 2026 г.
- Новое: ссылки на оплату.
GETиPOST /checkout-links,GET,PATCHиDELETE /checkout-links/{id}: ссылки с артикулом, ценой в центах, целевой аудиторией, запрашиваемыми данными, платёжным провайдером (STRIPEилиMOLLIE), собственным прямым дебетованием, дополнительными предложениями (bumps), планами оплаты (plans) и предложениями после покупки (upsells); при записи списки заменяют существующие. Удалить можно только ссылку без счетов (иначе409 conflictсhas-invoices; тогдаactive: false).POST /checkout-links/{id}/personal-linksсоздаёт персональную ссылку для контакта, действующую семь дней.GETиPATCH /checkout/settings: стандартный составитель счетов организации. Праваcheckout:readиcheckout:write; только организации BUSINESS и HOLDING.
v1.168.0 · 18 октября 2026 г.
- Новые права для выставления счетов:
checkout:read/checkout:write(ссылки на оплату, коды скидок, персональные ссылки, хуки доступа),subscriptions:read/subscriptions:write(подписки),credits:read/credits:write(программа кредитов) иdunning:write(напоминания об оплате). Они подготовлены для адресов, которые появятся позже; до тех пор они не дают доступа. Существующие ключи и доступы OAuth не получают их автоматически.
v1.167.0 · 17 октября 2026 г.
- Новое: настройки live-комнаты claritos. У типа встречи
liveRoomсclassId(класс для сессионных комнат по подгруппам) иsummarizeBreakouts, вPOST /appointment-typesиPATCH /appointment-types/{id}и в каждом ответе с типом встречи. У встречиGETиPUT /appointments/{id}/live-room: переопределить класс, запись и резюме сессионных комнат или вернуть к типу встречи значениемTYPE, а также что действует (effective).
v1.166.1 · 16 октября 2026 г.
- API-MCP (
/api/mcp/v1,/api/mcp/v1/compact, а также/o/{orgId}):GETтеперь отвечает405 Method Not AllowedсAllow: POST, OPTIONS. Сервер работает без состояния и сам ничего не отправляет; раньшеGETоткрывал поток, который оставался открытым до истечения лимита времени. MCP-клиенты, как и предусмотрено, считают 405 признаком отсутствия потока и продолжают работу черезPOST. Без доступа по-прежнему401сWWW-Authenticate.
v1.166.0 · 15 октября 2026 г.
- Новое:
check.overallScore— общий спам-балл рассылки в процентах (от 0 до 100,nullбез проверки): техника из баллов Rspamd по его порогам (4 балла 25 %, 6 баллов 50 %, 15 баллов 100 %, между ними линейно) и содержание из проверки ИИ, объединённые как 1 − (1 − техника)(1 − содержание), при двух версиях — худшая. Новое вspamReports[].report.symbols[].origin:testSendдля правил, которые возникают только из-за тестовой отправки в claritos; в общем балле они не учитываются. Поведение: красные замечания больше не блокируют запуск.POST /email-campaigns/{id}/startтребуетconfirmWarnings: trueкак при жёлтых, так и при красных замечаниях (иначе422 precondition-failedсcampaign-check-warnings);campaign-check-redбольше не возникает. Запланированная рассылка приостанавливается перед сроком, только если содержание изменилось после проверки и новая проверка содержит замечания.
v1.165.1 · 15 октября 2026 г.
- Текст: в
GET /email-campaigns/setupподгруппа класса теперь называется вsmartLists[].name«Класс › Группа», чтобы одноимённые группы разных классов можно было различить. Идентификатор и получатели не меняются.
v1.165.0 · 15 октября 2026 г.
- Новое: собранные списки (например, классы) в
/contact-lists. Список состоит из отдельно выбранных контактов-лиц и делится на именованные подгруппы; каждое лицо входит не более чем в одну подгруппу.GET /contact-lists(постранично, сmemberCountи подгруппами),GET /contact-lists/{id}(подгруппы сcontactIds, а такжеwithoutSubgroup),POST,PATCH,DELETE /contact-lists/{id}; подгруппы черезPOST /contact-lists/{id}/subgroups,PATCH/DELETE /contact-lists/{id}/subgroups/{subgroupId}иPUT /contact-lists/{id}/subgroups/order; участники черезPOST /contact-lists/{id}/members(сsubgroupId),POST /contact-lists/{id}/members/from-selection(tags,smartListIds),PUT /contact-lists/{id}/members/subgroupиPOST /contact-lists/{id}/members/remove. Для чтения нужноcontacts:read; изменять могут автор списка или ORG_ADMIN (иначеforbidden, без действующего лицаno-acting-user). Причины:409 conflictсsubgroup-name-taken,422 precondition-failedсtoo-many(более 2000 участников или 100 подгрупп). Компании не становятся участниками (notPerson).
v1.164.0 · 15 октября 2026 г.
- Новое:
check.contentReportsдля каждой версии, отчёт проверки содержания с помощью ИИ:score(от 0 до 100, не процент),zone(none,low,elevated,high) иfindingsсcategory,strength(slight,clear,strong) иquote(дословно из темы или текста). Оценку claritos рассчитывает по находкам по фиксированной схеме. Новое вcheck.findings[].rule:kiRisiko(yellow, начиная сelevated,value= оценка) иkiGering(info,value= оценка); правила отkiGewinnдоkiUnserioesиз 1.162.0 больше не создаются, в старых проверках они остаются. Также новое в быстрой проверке:betreffAntwort(yellow, тема начинается с «Re:» или «Fwd:») иlinkTextTaeuscht(yellow, текст ссылки называет другой домен, чем её цель).
v1.163.0 · 15 октября 2026 г.
- Новое:
GETиPUT /organization/security-txtчитают и задают адрес для сообщений об уязвимостях (email). Если он задан, собственные домены организации отдают/.well-known/security.txtпо RFC 9116;nullудаляет его. Задать может только лицо с ролью ORG_ADMIN, недопустимый адрес даёт 422.
v1.162.0 · 14 октября 2026 г.
- Новое: семь значений для
check.findings[].ruleрассылок.kiGewinn,kiGesundheit,kiDruck,kiUebertreibungиkiUnserioes(всегдаlevelyellow,value— цитата из текста) сообщают об обещаниях денег или воздействия на здоровье, давлении, преувеличениях и непрофессиональных формулировках, которые нашла проверка содержания с помощью ИИ в теме или тексте шаблона;kiOkиkiFehler(info) сообщают, что она ничего не нашла или не выполнялась. В продакшене только после того, как это будет указано в политике конфиденциальности; до тех пор этих значений там нет.
v1.161.0 · 14 октября 2026 г.
- Новое: «Мои почтовые ящики».
GET /mailboxes/mineперечисляет ящики, которые может открыть действующее лицо (personalи общие с доступом).GET /mailboxes/{key}/messagesпоказывает папку (inbox,sent,archive,spam,trash),GET /mailboxes/{key}/messages/{folder}/{uid}читает письмо,POST /mailboxes/{key}/messages/updateставит отметки, перемещает или убирает из ящика.POST /mailboxes/attachmentsвыдаёт подписанный адрес для вложения,POST /mailboxes/{key}/sendотправляет из этого ящика (личного или общего) через учётную запись SendGrid организации, с записью в исходящих. Причины при422 precondition-failed:invalid-recipients,attachment-not-uploaded,send-failed.
v1.160.0 · 14 октября 2026 г.
- Поведение, спецификация без изменений: письма из почтовых ящиков, которые пользователь за доступом не может видеть (правило из
GET /mailboxes), теперь отсутствуют вGET /inbox/threadsи других эндпоинтах входящих, в переписке с контактом (/contacts/{id}/conversation, включая ящики, запись и ответ) и в исходящих (GET /outbound-emails,GET /outbound-emails/{id},POST /outbound-emails/{id}/resend). Цепочка без видимого сообщения и такая запись считаются несуществующими (404). Ключ без действующего пользователя видит только ящики, открытые всем ролям. Без ограниченных ящиков ничего не меняется.
v1.159.0 · 14 октября 2026 г.
- Новое: почтовые ящики.
GET /mailboxesперечисляет личные и общие ящики на домене для личных писем с адресом и правилом доступа (access.roles,access.rolesWithRecordAccess,access.users);POST /mailboxes,PATCH /mailboxes/{id}иDELETE /mailboxes/{id}создают, меняют и удаляют общие ящики, например info@ (только ORG_ADMIN).GET /mailboxes/personal/meпоказывает собственный личный ящик,PUT /mailboxes/personal/{userId}/accessзадаёт, кто видит его письма (свой может каждый, чужой только ORG_ADMIN). Причины при422 precondition-failed:no-personal-domain,invalid-local-part,display-name-required,not-a-member; занятый адрес даёт409 conflictсaddress-taken. Правило начнёт действовать для входящих, исходящих и переписки в одной из следующих версий; до тех пор все видят всё, как прежде. - Текст:
moodу цепочек входящих теперь описывает тон последнего классифицированного входящего письма, а не только ответа. Классифицироваться будет каждое настоящее письмо, кроме спама и рассылок (в продакшене только после того, как это будет указано в политике конфиденциальности).
v1.158.0 · 13 октября 2026 г.
POST /organization/invitationsпринимаетdeliverTo: еслиemailотносится к домену личной почты организации, почтовый ящик появляется только после принятия; приглашение тогда уходит наdeliverTo(обязательно, иначе422у поля), а имя до @ должно быть свободно (409 conflict,reason: mailbox-taken). Приглашения содержатdeliveredTo(иначеnull).
v1.157.0 · 13 октября 2026 г.
- Поведение, спецификация без изменений: записи, которые кто-то создаёт на календарном устройстве (Thunderbird, iPhone, CalDAV), теперь являются личными встречами человека, а не отсутствиями, если только их категория не отпуск, больничный, обучение или отсутствие. Поэтому отсутствия ресурса (
GET /appointment-resources/{id}) больше не включают личные встречи; они по-прежнему блокируют время (если не отмечены как свободные). Изменение личной встречи черезPUT /appointment-resources/{id}/absences/{absenceId}превращает её в отсутствие.
v1.156.0 · 13 октября 2026 г.
- Новое:
projectIdвPOST /appointments. Типы приёма с оплатойQUOTAтеперь можно назначать изнутри (правило владельца: снаружи их по-прежнему записывает только клиент в портале). Тогда обязателен проект клиента, свободного бюджета времени которого хватает на длительность; длительность резервируется при создании. Если проекта нет, он не принадлежит клиенту или бюджета не хватает,400дляbody.projectId. Для серии повторяющихся записей, групповой записи или серии этапов API отвечает422сprecondition-failedи причинойquota-single-only(раньшеquota-portal-only, она остаётся для ссылок записи).
v1.155.0 · 13 октября 2026 г.
GET/PATCH /organization/letterheadсодержатcancellationRefundDays: срок в днях (от 0 до 365), который сторнирующий счёт указывает для возврата уже оплаченного счёта. Значение по умолчанию диалога сторно; вне диапазона422у поля.
v1.154.0 · 13 октября 2026 г.
- Сторнирующие счета (
kind: CANCELLATION), в том числе черезPOST /invoices/{id}/cancel: меняется только поведение, поля остаются. Новый сторнирующий счёт имеетbankTransferEnabled: falseвместо значения исходного счёта.paymentTermsTextсодержит фиксированное предложение на языке и с обращением счёта: если счёт ещё не был оплачен, что ничего делать не нужно; иначе до какого дня будет возвращена уплаченная сумма. Открытая позиция возврата клиенту наступает в этот день, а не сразу. Срок берётся из настройки организации (14 дней, если ничего не задано); параметра у адреса для этого нет. Более ранние сторнирующие счета не меняются.
v1.153.0 · 13 октября 2026 г.
- finAPI:
PUT /finapi/accounts/{externalAccountId}/connectionвозвращаетprecondition-failedсreason: finapi-terms-consent, пока организация не приняла п. 5 § 11 Условий использования (подключение банка через finAPI). Это касается только клиентов, заключивших договор до 13.10.2026, до вступления изменения в силу для них (FI.134). Согласие даётся в claritos при подключении банка (setupUrlизGET /finapi); API согласие не принимает.
v1.152.0 · 13 октября 2026 г.
- Новый
GET /documents/{id}/related(правоdocuments:read): связанные документы документа, как в просмотре в разделе «Связанные документы». Каждая запись содержитid,title,mimeType,createdAtиrelation:session(документ встречи),recording(запись встречи),split-original/split-part(оригинал и часть разделения),signed(подписанная версия),signing-original(оригинал до подписи),same-email(вложение того же письма),same-appointment(документ той же встречи). Каждый документ один раз; то, что ключу не разрешено видеть, отсутствует (как вGET /documents).
v1.151.0 · 13 октября 2026 г.
- SendGrid: домен календарей записей может совпадать с доменом личных писем (SV.147). Тогда имена людей и метки ресурсов должны быть уникальны вместе; иначе
conflictсreason: address-taken(уPUT /sendgrid/domains/{id}/calendarиPUT /sendgrid/domains/{id}/personalсlocalParts, уPUT /sendgrid/my-sender-nameбез). Причиныsendgrid-domain-is-personalиsendgrid-domain-is-calendarбольше не возникают. - SendGrid: поле
automaticSecurityу каждого домена,receiveOnDomainпри создании (POST /sendgrid/domains) и новая точкаPOST /sendgrid/domains/{id}/recreate(SV.148). Домен личных писем и календарей записей принимает почту на себя; ответы идут на тот же адрес, с которого написано письмо. В SendGrid это возможно только без «Automatic Security» (записи MX и TXT вместо CNAME; у MX-записей естьpriority), иначеprecondition-failedсreason: sendgrid-domain-automatic-security. - SendGrid:
POST /sendgrid/domains/{id}/repliesдля любого домена (SV.149). Для домена, на котором нет ни личных писем, ни календарей записей, хост лежит под доменом, а ответы, например на рассылки, попадают во входящие организации; рассылки тогда указывают этот адрес для ответа. В production только после того, как это назовёт политика конфиденциальности (precondition-failed,reason: sendgrid-replies-not-released).
v1.150.0 · 12 октября 2026 г.
- Новое:
guestsпри создании индивидуальной записи (POST /appointments,POST /appointment-recurrences): имя и электронная почта для каждого гостя, не большеmaxGuestsтипа приёма. Гости создаются в той же операции и получают собственное приглашение, где клиент указан как пригласивший; для серии повторяющихся записей также в последующих записях. Если тип приёма не допускает гостей или это групповая запись,400.
v1.149.0 · 12 октября 2026 г.
- Новое:
accountEmailв подписке на календарь ресурса (/appointment-resources/{id}/calendar-feed): адрес электронной почты его календаря записей (сотрудник, помещение, оборудование), иначеnull. Помещения и оборудование сами отвечают на приглашения по этому адресу; где есть календарь записей, письма о записях отправляются с него.
v1.148.0 · 12 октября 2026 г.
- SendGrid: календарный домен для календарей записей. Поле
calendarу каждого домена,calendarAvailableв состоянии (GET /sendgrid) иPUT /sendgrid/domains/{id}/calendar(enabled): не более одного домена на организацию, никогда не домен личных писем, только подтверждённый и без MX, указывающего в другое место.POST /sendgrid/domains/{id}/repliesнастраивает для этого домена приём на самом домене (hostтогда не учитывается). Новые причины дляprecondition-failed:sendgrid-calendar-not-released,sendgrid-domain-is-personal,sendgrid-domain-is-calendar,sendgrid-domain-foreign-mx,dns-unavailable. Включается только при правах на календари записей и e-mail-рассылки, в production пока нет (calendarAvailable: false).
v1.147.0 · 12 октября 2026 г.
- Новое: подписка на календарь для каждого ресурса.
GET/POST/PATCH/DELETE /appointment-resources/{id}/calendar-feed: состояние, новый секретный адрес ICS (только в ответеPOST; прежний перестаёт действовать), имена клиентов вкл. или выкл., завершение. Без права412сcalendar-feed-not-enabled.
v1.146.0 · 12 октября 2026 г.
GET /organization/entitlementsзнает новое правоTERMINKONTEN(фид подписки, CalDAV и собственные адреса для ресурсов). Оно действует только вместе сE_MAIL_KAMPAGNEN; без негоeffectiveложно.
v1.145.0 · 12 октября 2026 г.
- Новое: переносить приёмы серии, не нарушая цепочку.
POST /appointments/{id}/series-proposalсообщает, подходит ли новое время, иначе допустимый период и заново размещённые забронированные следующие шаги;POST /appointments/{id}/reschedule-with-seriesпереносит все по предложению. Изменено:POST /appointments/{id}/rescheduleотклоняет время, нарушающее цепочку, с412иseries-chain-broken(раньше переносил без проверки).
v1.144.0 · 12 октября 2026 г.
- Новое:
GET /appointment-seriesвыдаёт текущие серии с их состоянием (сначала открытые шаги,openStep.passed, ближайший приём), аPOST /appointment-series/{id}/cancel-fromотменяет приём и все следующие шаги; серия завершается, клиент получает одно уведомление об отмене с перечислением остальных приёмов.
v1.143.0 · 12 октября 2026 г.
- Новое: клиенты сами начинают серию приёмов.
POST /appointment-series-templates/{id}/start-linksсcontactIdвозвращает личную ссылку (/t/serie/…), одну на клиента и шаблон; там клиент видит предложение (приSTEPWISEтолько шаг 1) и записывается одним нажатием. Изменено:clientBookableтеперь действует и приADVANCEи сохраняется так, как передано (раньше приADVANCEсохранялось какfalse). БезclientBookable412сseries-not-client-bookable.
v1.142.0 · 12 октября 2026 г.
- Новое: клиенты сами записываются на следующие шаги серии. Шаблоны принимают и возвращают
clientBookable(действует только вместе сbookingModeSTEPWISE, приADVANCEсохраняется какfalse); серии тоже его возвращают. Когда шаг открывается, клиент получает письмо со ссылкой для записи, которая показывает только время в окне шага, и напоминание перед его окончанием.
v1.141.0 · 12 октября 2026 г.
- Новое: серии приёмов шаг за шагом. Шаблоны и серии несут
bookingMode(ADVANCEкак прежде,STEPWISE: сначала только шаг 1, каждый следующий открывается, когда состоялся предыдущий). ПриSTEPWISEPOST /appointment-seriesпринимает ровно одну запись (раньше не менее двух);POST /appointment-series/proposalтогда предлагает только шаг 1.GET /appointment-series/{id}дополнительно возвращаетcontactId,progressиopenStep(окно открытого шага). НовыеPOST /appointment-series/{id}/steps/{step}/proposal(свободное время в окне) иPOST /appointment-series/{id}/steps/{step}(бронирует открытый шаг; не открыт412сseries-step-not-open, вне окна422вbody.startsAt).
v1.140.0 · 12 октября 2026 г.
- Новое: серии приёмов (последовательность разных типов приёма с окнами).
GET/POST /appointment-series-templates,PATCH /appointment-series-templates/{id}(шаги сappointmentTypeId,durationMinutes,fromDay/toDayпосле предыдущего шага,samePersonAsStep),POST /appointment-series/proposal(самая ранняя полная последовательность сfrom, ничего не бронирует; без мест412сseries-no-slots),POST /appointment-series(заранее, всё или ничего) иGET /appointment-series/{id}.
v1.139.0 · 12 октября 2026 г.
- Новое:
GET /appointments/{id}/waitlist(лист ожидания мероприятия:stateWAITING, OFFERED, ACCEPTED, EXPIRED, DECLINED, REMOVED, а такжеpositionиofferExpiresAt). Поведение: когда на мероприятии с листом ожидания освобождается место, первый в списке получает предложение со сроком; пока оно действует, место удерживается, в том числе от записи по ссылке.
v1.138.0 · 12 октября 2026 г.
- Серии приёмов:
POST /appointment-recurrences/{id}/change-from(appointmentId,startsAt,rule,end, необязательно длительность, место, услуга, телефон, сотрудник, пропуски): новая серия с нового первого времени с клиентами указанного приёма; он и следующие старые приёмы отменяются; ответ — новая серия. Поведение: приcancel-fromиchange-fromприёмы отменяются без отдельного письма, только если каждый их клиент получает общее письмо; у мероприятий каждый приём получает своё уведомление об отмене.
v1.137.0 · 12 октября 2026 г.
- Серии приёмов:
POST /appointment-recurrences/{id}/end(завершить; созданные приёмы остаются),POST /appointment-recurrences/{id}/cancel-from(appointmentId, необязательноreason: отменить этот и все следующие; клиент получает ОДНО уведомление со списком остальных) иPATCH /appointment-recurrences/{id}(изменитьend, например продлить; не раньше созданных приёмов, иначе422сtoo_small). Поведение: подтверждение первого приёма серии называет правило словами.
v1.136.0 · 12 октября 2026 г.
- Новое: серии приёмов (повторяющиеся приёмы, любой тип приёма).
POST /appointment-recurrencesсоздаёт серию: поля первого приёма как уPOST /appointments, плюсrule(weeklyс интервалом от 1 до 4 и днями со временем,monthlyWeekdayс n-м или последним днём недели,monthlyDay),end(countот 2 до 200,untilдо двух лет,open) иskipHolidays/skipClosures(по умолчанию включено). Расчёт в часовом поясе типа приёма; следующие приёмы создаются в фоновом режиме без отдельного подтверждения.GET /appointment-recurrences/{id}возвращает правило, состояние, предстоящие приёмы и пропущенные с причиной. У приёмов появилось полеrecurrenceId. Неверное правило или окончание:422дляbody.ruleилиbody.end.
v1.135.0 · 12 октября 2026 г.
- События (групповые типы с
internalOnly: false, не занятия):POST /appointmentsдля события можно вызывать безparticipants, тогда приём создаётся со свободными местами; выбор, в котором никого нет, по-прежнему отвечает422сtoo_small.DELETE /appointments/{id}/participants/{contactId}у события исключает и последнего участника (безlast-participant). Клиенты записываются на место в созданном приёме по ссылке для записи;/appointment-types/{id}/slotsпо-прежнему показывает, когда команда может создать приём.
v1.134.0 · 12 октября 2026 г.
- Типы приёма: новые поля
minParticipants,minParticipantsHours,minParticipantsAction(NOTIFY,CANCEL),waitlistEnabled,waitlistOfferHours(чтение и запись; минимум и лист ожидания для групповых типов, лист ожидания только для событий).internalOnlyтеперь возвращает сохранённое значение для групп:falseозначает событие (клиенты записываются на место), занятия остаются внутренними. Пакет только для индивидуальных типов (422сquota_group). Неверные значения:422сminimum_invalid,minimum_hours_invalid,waitlist_hours_invalid.
v1.133.0 · 12 октября 2026 г.
- Встречи из пакета: новое поле
quotaу встречи (projectId,minutes,state:HELD,CONSUMED,RELEASED;nullбез пакета) иPOST /appointments/{id}/quota/release(причина от 3 до 500 символов) освобождает зарезервированное время с протоколом; без открытого резерва422сquota-not-held. После встречи фактическое время Zoom попадает в проект как запись времени, резерв переходит вCONSUMED.
v1.132.0 · 12 октября 2026 г.
- Встречи из пакета записывает только клиент в портале (правило владельца):
POST /appointmentsс типом приёма в режимеQUOTAтеперь отвечает422сprecondition-failedи причинойquota-portal-onlyвместо создания встречи без проекта. Отмена (POST /appointments/{id}/cancel) освобождает зарезервированное время проекта; перенос с другой длительностью корректирует резерв.
v1.131.0 · 12 октября 2026 г.
- Типы приёма в режиме
QUOTA(пакет): при записи (POST/PATCH /appointment-types) место теперь только онлайн (places: ["ONLINE"]), оба переключателя Zoom включены (recording.autoRecord,recording.fetchZoomRecordings) независимо от ввода. Состав (PUT /appointment-types/{id}/staffing) такого типа требуетmeetingProvider: "ZOOM"у каждого сотрудника и не допускает партнёрской роли; иначе422с кодомquota_zoom_requiredилиquota_partner. Запись на пакет через портал появится в следующей версии.
v1.130.0 · 12 октября 2026 г.
- Счета и предложения: новое поле
contactEmail(строка илиnull) — адрес электронной почты связанного контакта;nullбез контакта или без адреса. ВGET /invoices,GET /quotes, отдельных запросах и ответах и в событияхinvoices.invoice.*иquotes.quote.*. - События
payments.checkout.*: новые поля в объектеcheckout:checkoutLinkName(название ссылки оплаты, то есть продукт;nullбез названия),customerName(контакт счёта, иначе имя, указанное при оплате),orderIdиorderNumber(заказ счёта, иначеnull) и только вpayments.checkout.failed—failureReason:direct_debit_failed(прямое дебетование не прошло),chargeback(возврат платежа),no_mandate(нет мандата) илиpayment_failed(другая причина). Прежние поля сохраняются.
v1.129.0 · 12 октября 2026 г.
- Задачи: новое поле
contactEmail(строка илиnull) — адрес электронной почты связанного контакта;nullбез контакта или без адреса. ВGET /tasks,GET /tasks/{id}, ответах на создание и изменение и в событияхtasks.task.*. Так процессы без идентификатора контакта находят контакт по адресу.
v1.128.0 · 12 октября 2026 г.
- API-MCP для языковых моделей: при подключении сервер передаёт обзор claritos (
instructions: области по группам с одним предложением и числом адресов, доступных этому доступу, правила, типичные процессы). Новый инструментguide(обзор, область с её адресами или руководство из /developers). Описания полей инструментов теперь приходят текстом; раньше там стояли ключи перевода вродеapiDocs.fields.common.limit. Новый адрес/api/mcp/v1/compact(для каждой организации/api/mcp/v1/compact/o/{orgId}) с четырьмя инструментами вместо одного на адрес:guide,search_endpoints,describe_endpoint,call_endpoint; тот же вход, права, лимиты и журнал./api/mcp/v1и/api/v1не меняются.
v1.127.0 · 12 октября 2026 г.
- Новое:
GET /call-guides/options(callguides.options, только ORG_ADMIN) за один вызов возвращает всё, что редактор сценариев предлагает для действий и полей: шаблоны (sms,promotional), участники, персональные ссылки на оплату, формы, рекламные материалы, типы встреч сholdersи поля контакта (fixed,standard,custom) с вариантами. Идентификаторы и ключи используются в содержимомPOST /call-guidesиPATCH /call-guides/{id}.
v1.126.0 · 12 октября 2026 г.
- Новое: чтение звонков (область
calls, только чтение, каждый участник).GET /callsвыводит звонки от новых к старым (фильтрmissed,messages,withoutContact,contactIdдля владельца номера или собеседника, поискq,updatedSince),GET /calls/{id}читает один. Поля совпадают с событиемcalls.call.ended, плюс автоответчик и состояние заметки о разговоре. Заметка (note) и автоматическая заметка (callNote) — данные клиентов: их текст только с разрешения организации и правомclients:, иначеnullсhasNote/hasCallNote.
v1.125.0 · 12 октября 2026 г.
- Письма:
POST /letters/{id}/finalize(зафиксировать без отправки),POST /letters/{id}/duplicate(копия как черновик),DELETE /letters/{id}(не после присвоения номера,409 numbered-no-delete),POST /letters/{id}/cancel-signature(отменить идущую подпись,409 signature-completedпосле завершения) иPOST /letters/{id}/number(присвоить порядковый номер,202, PDF создаётся заново). Исходящие:POST /outbound-emails/{id}/resendотправляет письмо повторно, при желании на другой адрес или с изменённым текстом, с собственной записью; не для кодов, скрытых данных, кампаний и анонимизированных записей (409 not-resendable). - Выданные документы из PDF-шаблонов (сертификаты):
GET /issued-documents,GET /issued-documents/{id},POST /issued-documents,DELETE /issued-documents/{id}(только черновики),POST /issued-documents/{id}/finalize,POST /issued-documents/{id}/retry-file,POST /issued-documents/{id}/cancel(только ORG_ADMIN) иPOST /issued-documents/{id}/letter(подготовить письмо с документом во вложении). Выдавать могут те, кто пишет письма (ORG_ADMIN, ORG_USER), как в приложении. - Входящие:
GET /inbox/threads,GET /inbox/threads/{id},PATCH /inbox/threads/{id}(прочитано, в архиве, ответственный, контакт, теги),GET /inbox/tags,GET /inbox/countsиPOST /inbox/threads/{id}/task(задача из ветки, дополнительно нужноtasks:write). Вложения как идентификаторы документов (documents.downloadUrl). Ветки контакта с клиентской картой только при разрешении данных клиентов иclients:read. - Переписка с контактом:
GET /contacts/{id}/conversation(история по e-mail, SMS, сообщениям в портале и в карте, звонкам),GET /contacts/{id}/conversation/{source}/{entryId}и…/reply-basis,GET /contacts/{id}/conversation/compose(отправители, шаблоны, разрешение),GET /contacts/{id}/conversation/permission,POST /contacts/{id}/conversation/email,POST /contacts/{id}/conversation/portal-post(clients:write),POST /contacts/{id}/conversation/smsиPOST /contacts/{id}/conversation/sms-preview. Чтение ничего не отмечает как прочитанное; рекламные только с согласием. Новая причина дляprecondition-failed:client-record-missing.
v1.124.0 · 12 октября 2026 г.
- Типы приёма: новое поле
startWindows(чтение и запись вPOST/PATCH /appointment-types): когда может начинаться приём этого типа, в каждой записиdays(1 = понедельник … 7 = воскресенье),earliestиlatest(HH:MMв часовом поясе типа приёма, включительно), не более 14;nullили[]снимает ограничение./appointment-types/{id}/slotsпредлагает тогда только время внутри них, запись и перенос клиентом соблюдают их. Неверно:422с путёмbody.startWindows.
v1.123.0 · 12 октября 2026 г.
- Логотипы и тип организации:
GET /organization/logos,POST /organization/logos/{kind}/upload(проверка формата и размера, подписанный адрес для прямой загрузки),POST /organization/logos/{kind}/confirmиDELETE /organization/logos/{kind}, дляlogoиinvoice-logo; для SVG и WebP, как в приложении, создаётся PNG-версия для писем.PATCH /organizationдополнительно принимаетtype(BUSINESS, HOUSEHOLD, HOLDING); частная организация сохраняет свой тип (409 conflict,reason: private-organization). Изменение сorganization:writeи лицом с ролью ORG_ADMIN.
v1.122.0 · 12 октября 2026 г.
- Гости индивидуального приёма:
POST /appointments/{id}/guests(имя, e-mail) приглашает гостя от имени записавшегося,DELETE /appointments/{id}/guests/{contactId}отзывает приглашение (гость получает «Приглашение отозвано», приём остаётся). Правоappointments:writeи лицо с правом «Управление расписанием». Новое полеisGuestуparticipants. Новые причины дляprecondition-failed:group-appointment-has-no-guests,guest-limit-reached.
v1.121.0 · 12 октября 2026 г.
- Подключения, интеграции и собственные домены организации:
GET /organization/entitlements(каждое право с лицензией, разрешением и действием),GET /organization/integrations(состояние каждого подключения со страницей для подключения; LeadConnector называется тамleadconnector),GET/POST /organization/domains,POST /organization/domains/{purpose}/verifyиDELETE /organization/domains/{purpose}(назначениеapp,finder,marketplace; ответ называет недостающие DNS-записи). Всё лицом с ролью ORG_ADMIN; собственные домены требуют разрешения claritos, чужой домен отвечает409 conflictсreason: taken.
v1.120.0 · 12 октября 2026 г.
- Документы: каждый документ содержит
extracted.counterpartyDetails(адрес сstreet,postalCode,city,countryв виде ISO-кода, а такжеemail,phone,websiteиcontactPersonсname,email,phone,position), как ИИ прочитал их из документа;null, если ничего не распознано. НовыйPOST /documents/{id}/counterparty-contact(праваdocuments:writeиcontacts:write): связывает документ с контактом его контрагента, как «Создать контакт» в приложении. Уже связанный контакт остаётся; иначе контакт с точно таким именем, подходящая компания (ИНН/НДС, регистр, домен, имя) или новый с адресом. Ответ{ contactId, created }; без контрагента409 conflictсreason: no-counterparty.
v1.119.0 · 12 октября 2026 г.
- Новое: чтение входящих SMS.
GET /inbound-smsвыводит SMS, отправленные на номер организации (от новых к старым, страницы как уGET /sms, фильтрcontactId,updatedSinceздесь означает «получено с»), с контактом, способом сопоставления (number,personBeforeCompany,ambiguous,unknown,manual) и ключевым словом отписки Twilio;GET /inbound-sms/{id}читает одно. Областьsms, правоsms:read.
v1.118.0 · 12 октября 2026 г.
- Обращение и правовые тексты организации:
GET/PATCH /organization/salutation(на «вы» или на «ты» по умолчанию, «ты» для отдельных контактов, «вы» обязательно по типу документа, приветствие),GET/PATCH /organization/legal-texts(все правовые тексты вместе со стандартными, ответственный за защиту данных и надзорный орган),PUT/DELETE /organization/legal-texts/{kind}(задать собственный текст, версия растёт; вернуть стандартный). Чтение сorganization:read, изменение сorganization:writeи лицом с ролью ORG_ADMIN. У частной организации нет правовых текстов (403 feature-not-available).
v1.117.0 · 12 октября 2026 г.
- Контакты, часы работы и бланк организации:
GET/PATCH /organization/contact(адрес для посещения, телефон, e-mail для сайта и портала),GET/PUT /organization/opening-hours(до двух интервалов на день недели) иGET/PATCH /organization/letterhead(деловая документация: юридическое название, правовая форма, адрес, налоговые и регистрационные данные, руководство, банк, форма бланка, артикулы для учёта времени и возвратных списаний). Чтение сorganization:read, изменение сorganization:writeи лицом с ролью ORG_ADMIN;PATCHменяет только переданное, проверка как в настройках (422с полем).
v1.116.0 · 12 октября 2026 г.
- Только представление, ни один адрес не изменён: спецификация группирует области (
x-tagGroups, например «Контакты и клиенты», «Продажи и счета»). Каждый тег несёт отображаемое имя (x-displayName) и в описании одно предложение о назначении области. Сами имена тегов (contacts,invoices…) остаются прежними.
v1.115.0 · 12 октября 2026 г.
- Типы приёма: новое поле
maxGuests(чтение и запись вPOST/PATCH /appointment-types): сколько ещё человек может пригласить записавшийся на свой приём, от 0 до 20, только при одном месте (иначе всегда 0). Неверное значение:422с кодомguests_invalid.
v1.114.0 · 12 октября 2026 г.
- Запись участников и приглашений (право
members:write, лицо с ролью ORG_ADMIN, как во вкладке «Участники»):PATCH /organization/members/{userId}(роль ORG_ADMIN/ORG_USER, видимость, доступ к картам клиентов, языки перевода),DELETE /organization/members/{userId},POST /organization/invitations(приглашение по e-mail, ссылка действует семь дней) иDELETE /organization/invitations/{id}. Действующее лицо никогда не меняет и не удаляет само себя (403 forbidden,reason: self), последний ORG_ADMIN остаётся (409 conflict,reason: last-admin); уже участник или уже приглашён отвечает409 conflictсreason: already-memberилиalready-invited.
v1.113.0 · 12 октября 2026 г.
- Почтовые аккаунты через API (область
letters):GET /postal-account(через какого провайдера отправляет очередь, его баланс, пауза, ожидающие письма; ORG_ADMIN дополнительно видит LetterXpress и Pingen подробно вaccounts) иPOST /postal-account/resume-queue(снять паузу, отправить ожидающие письма,202). LetterXpress и Pingen подключаются и отключаются только в приложении; их данные доступа API не принимает.
v1.112.0 · 12 октября 2026 г.
- Чтение наборов данных Meta:
GET /organization/meta-datasets(пиксель и Conversions API: название, идентификатор пикселя, тестовый код,hasToken), сorganization:readи лицом с ролью ORG_ADMIN. API никогда не выдаёт токен; создание и изменение остаются в приложении, как у SendGrid.
v1.111.0 · 12 октября 2026 г.
- Брендборд через API (область
sites): борды сGET/POST /sites/brands,GET/PATCH/DELETE /sites/brands/{id},POST /sites/brands/{id}/defaultиPOST /sites/brands/{id}/publish; шрифты сGET/POST /sites/brands/{id}/fonts(собственный шрифт, адрес для загрузки),POST /sites/brands/{id}/fonts/google(импорт шрифта Google, поиск черезGET /sites/google-fonts) иDELETE /sites/brands/{id}/fonts/{fontId}; логотипы сGET /sites/brands/{id}/logos,POST/DELETE /sites/brands/{id}/logos/{slot}.PATCHизменяет только переданное (объекты объединяются). Чтение сsites:read, запись сsites:writeи лицом с ролью ORG_ADMIN (как в брендборде). Последний борд удалить нельзя (409,last-board); уже импортированный шрифт отвечает409сfont-already-imported. ИИ-советники брендборда остаются в приложении.
v1.110.0 · 12 октября 2026 г.
- Банковские подключения (право
banking):GET /bank-connectionsиGET /bank-connections/{id}(для WISE с открытым ключом),POST /bank-connections/{id}/sync(получить выписки),GET /revolut(состояние настройки с адресом в claritos),GET /revolut/accountsиPUT /revolut/accounts/{externalAccountId}/connection(подключить счёт разрешённого доступа),GET /finapi,PUT /finapi/accounts/{externalAccountId}/connectionиPOST /finapi/banks/{bankConnection}/refresh. Подключение с ключом, вход в Revolut или finAPI и отключение остаются в claritos; ни ключи, ни вход в банк через API не передаются.
v1.109.0 · 12 октября 2026 г.
- Новое: настройка телефонии и отправителя SMS (область
telephony, только ORG_ADMIN).GET /telephonyпоказывает аккаунт, голосовой канал, все номера и настройки активных;POST /telephony/setupнастраивает голосовой канал;POST /telephony/numbersактивирует номер (с уточнениемactivated: false, если там уже стоит другая система, подтверждение черезoverwrite: true);GET/PATCH/DELETE /telephony/numbers/{id}читают, изменяют (строго, заметка о разговоре только сcallNotesNoticeConfirmed: true) и отключают; приветствие черезPOST /telephony/numbers/{id}/greeting/upload,PUTиDELETE /telephony/numbers/{id}/greeting. Twilio:GET /telephony/twilio,GET /telephony/twilio/numbers,PUT /telephony/twilio/sender,POST /telephony/twilio/inbound. Аккаунт Twilio подключается и отключается только в интерфейсе (settingsUrl); чужие адреса на номере API называет только хостом.
v1.108.0 · 12 октября 2026 г.
- Настройки партнёрской программы организации через API (область
affiliates): промокоды сGET/POST /affiliate-coupons,GET/PATCH/DELETE /affiliate-coupons/{id}(включение и выключение черезactive), отслеживание атрибуции сGET /affiliate-tracking(адрес вебхука конверсий, учётные данные только в замаскированном виде) иDELETE /affiliate-tracking/webhook(отключить), климатический взнос сGET/PUT /affiliate-climate-contribution(0, 50, 100 или 150 базисных пунктов). Чтение сaffiliates:read, запись сaffiliates:writeи лицом с ролью ORG_ADMIN (как во вкладке). Учётные данные вебхука конверсий API не создаёт и не показывает: это возможно только в приложении. Уже занятый промокод отвечает409с причинойcoupon-code-taken.
v1.107.0 · 12 октября 2026 г.
- Резервное копирование и журнал согласий организации:
GET /backups(настройки и последние 20 запусков),PATCH /backups/settings(интервал, объём, получатели),POST /backups/runs(запустить копирование,202с запуском),GET /backups/runs/{id}иPUT /backups/password(установить пароль архива или удалить его черезnull; он никогда не выдаётся). Кроме тогоGET /consent-log,GET /consent-log/summaryиGET /consent-log/export(CSV), только чтение. Праваbackups:read/backups:writeиconsentlog:read, всё только для лица с ролью ORG_ADMIN, как во вкладке. Новые причины дляprecondition-failed:backup-runningиbackup-recipients-required.
v1.106.0 · 12 октября 2026 г.
- Изменение организации:
PATCH /organization(правоorganization:write, лицо с ролью ORG_ADMIN, как в настройках) для названия, основной валюты, страны, режима цен, профиля практики, отрасли, адреса входящих (inboxSlug), псевдонима для ответов (replyAlias) и подписи e-mail; всё или ничего, те же проверки, что и в приложении. Неверные данные отвечают422с полем и кодом, занятый адрес входящих или псевдоним409 conflictсreason: taken, профиль практики без модуля «Практика»403 feature-not-available.GET /organizationдополнительно возвращаетinboxSlug,replyAlias,replyAddress,industryCode,defaultPriceModeиemailSignatureHtml.
v1.105.0 · 12 октября 2026 г.
- Почтовый ящик писем о записях:
GET /appointment-mailbox(подключённый ящик Gmail, состояние, адрес для ответов; любой участник) иDELETE /appointment-mailbox(отключить, с правом «Управление расписанием»; письма о записях продолжают уходить с адресом из деловых бумаг). Подключение только в claritos (согласие в Google).
v1.104.0 · 12 октября 2026 г.
- Новые права для настроек организации (эндпоинты появятся в следующих версиях):
members:write(участники, роли, приглашения; до сих порmembersбыл только для чтения),backups:read/backups:write(резервные копии),consentlog:read(журнал согласий сайта, только чтение)telephony:read/telephony:write(настройка телефонии и отправителя SMS) иbanking:read/banking:write(банковские подключения). Через OAuth первые четыре получает только ORG_ADMIN организации, как иwebhooks:manage;banking:read, как и в интерфейсе, доступно каждому участнику. - Приложение LeadConnector: три новых триггера платежей,
checkout_pending(платёж начат; при SEPA денег ещё нет),checkout_completed(платёж получен) иcheckout_failed(не прошёл, возвращён или пропущен взнос), на событияхpayments.checkout.*; и действиеinvoice-issue(провести счёт,invoices:write), ответ которого содержитdocumentsсо статусом и адресом PDF и адресом XML ZUGFeRD, пока он создаётся, сpending: xml-not-ready. Интерфейс/api/v1при этом не меняется.
v1.103.0 · 12 октября 2026 г.
- Группы приёмов, доступ для партнёров и календари:
GET/POST /appointment-groups,GET/PATCH/DELETE /appointment-groups/{id}(несколько типов приёма на одной странице; как во вкладке, чтение тоже только с правом «Управление расписанием»),GET/PUT /appointment-types/{id}/partner-release(видимость в партнёрской программе) иGET /appointment-resources/{id}/calendars(выбранные календари Google ресурса, только чтение; списки календарей аккаунтов Google API не выдаёт). Теперь раздел записей можно полностью настроить через API и MCP.
v1.102.0 · 12 октября 2026 г.
- Настройка планов напоминаний:
GET/POST /appointment-reminder-plans,GET/DELETE /appointment-reminder-plans/{id}(удаление архивирует),POST /appointment-reminder-plans/{id}/steps,PATCH/DELETE /appointment-reminder-steps/{id},POST /appointment-reminder-steps/{id}/moveиPOST /appointment-reminder-preview(подставлены примерные значения, названы неизвестные переменные). Список указывает язык текстов и каталог переменных. Чтение сappointments:read, настройка сappointments:writeи лицом с ролью ORG_ADMIN (как во вкладке). Текст с неизвестной переменной отвечает422с кодомunknown_variable.
v1.101.0 · 12 октября 2026 г.
- Настройка закрытий и мест:
GET/POST /appointment-closures,PATCH/DELETE /appointment-closures/{id}(праздник, день-мост, корпоративные каникулы, прочее; на целый день или с временным окном;affectedAppointmentsсчитает существующие приёмы в периоде, они остаются),PUT /appointment-bridge-day-rule(закрыто во все дни-мосты),POST /appointment-closures/{id}/keep-openиDELETE /appointment-bridge-day-rule/kept-open/{date}(оставить день-мост открытым или снова закрыть),GET /appointment-places,POST/PATCH/DELETE /appointment-phones[/{id}],POST/PATCH/DELETE /appointment-venues[/{id}]иPUT /appointment-venues/{id}/groups(помещения и оборудование, которые должны быть свободны по адресу). Чтение сappointments:read, запись сappointments:writeи правом «Управление расписанием». Удаление номера или адреса, который ещё выбран, отвечает409сin-use. Новая причина дляprecondition-failed:closure-automatic.
v1.100.0 · 12 октября 2026 г.
- Настройка SendGrid через API (область
campaigns):GET /sendgrid(право, подключение, недостающие права ключа, уведомления и по каждому домену отправителя DNS-записи, DMARC, личные письма, ответы),POST /sendgrid/events,POST /sendgrid/domains(возвращает DNS-записи, которые нужно задать),POST /sendgrid/domains/{id}/verify,DELETE /sendgrid/domains/{id},PUT /sendgrid/domains/{id}/personal,POST/DELETE /sendgrid/domains/{id}/repliesиPOST /sendgrid/domains/{id}/replies/verify(ответы через Inbound Parse, MX-запись вreplies.mxRecord), а такжеGET/PUT /sendgrid/my-sender-name(собственное имя до @, для каждого участника). Ключ SendGrid API не принимает: подключение и отключение только в приложении. Всё по организации требует ORG_ADMIN; настройка дополнительно — права «E-mail-кампании», просмотр и удаление работают и без него. Новые причины в422 precondition-failed:sendgrid-domain-not-in-account,sendgrid-key-invalid,sendgrid-unreachable,sendgrid-rejected,sendgrid-events-failed,sendgrid-personal-not-released,sendgrid-domain-not-confirmed,sendgrid-domain-not-personal,sendgrid-parse-scopes-missing(сmissingScopes),replies-not-configured,sendgrid-policy-forbidden,sendgrid-parse-failed,sendgrid-replies-not-set-up.
v1.99.0 · 12 октября 2026 г.
- Запись автоматизаций (право
automations:write, действующее лицо ORG_ADMIN):POST /automations(создаётся выключенным),PATCH /automations/{id}(отсутствующее остаётся, новая версия),DELETE /automations/{id},POST …/activateиPOST …/deactivate, а такжеPOST /automation-runs/{id}/resumeдля неудачных запусков. Ошибки сценария приходят как422 validation-failedс местом (body.flow.nodes.‹узел›.fields.‹поле›) и кодом. Новое для чтения:GET /automation-catalogс триггерами (фильтры, подстановки), источниками дат и действиями с их полями.
v1.98.0 · 12 октября 2026 г.
- Настройка ресурсов:
POST /appointment-resourcesиPATCH /appointment-resources/{id}(та же проверка, что в диалоге ресурса),GET …/availability,PUT …/schedule(график в цикле от 1 до 4 недель),POST …/absences, а такжеPUTиDELETE …/absences/{absenceId}(отпуск, обучение, болезнь, дополнительный приём),GETиPOST …/closure-overrides, а такжеDELETE …/closure-overrides/{overrideId}(всё же работать в закрытый день),GET …/working-hours(предпросмотр ближайших недель),GETиPUT …/meeting-defaults(пользователь Zoom, собственный номер) иGET …/zoom-users. Права как в приложении: тот, кто управляет записями, — для любого ресурса; человек — для собственного (только часовой пояс, не название, метка и активность; как пользователя Zoom только со своим адресом); собственную доступность создаёт каждый участник. Человек, который уже является ресурсом, отвечает409сalready-resource. Новая причина дляprecondition-failed:zoom-unavailable.
v1.97.0 · 12 октября 2026 г.
- Новое: чтение автоматизаций (область
automations, правоautomations:read):GET /automations,GET /automations/{id}со сценарием (flow: узлы сkindиnext, условия, ожидания; действие называется как его эндпоинт, напримерtasks.create),GET /automations/{id}/runs(последние 100 запусков с шагами,failedOnly) иGET /automations/{id}/stats(90 дней, по каждому узлу: достигнуто, неудачно, выходы, ожидают). Создание и изменение последуют.
v1.96.0 · 12 октября 2026 г.
- Настройка типов приёма:
POST /appointment-typesиPATCH /appointment-types/{id}(та же проверка, что в диалоге типа приёма;PATCHменяет только переданные поля),GETиPUT /appointment-types/{id}/staffing(состав: роли, кандидаты, распределение, присутствие, видеоинструмент для каждого),GETиPOST /appointment-types/{id}/links, а такжеPOST /appointment-links/{id}/revoke(ссылки записи). Чтение сappointments:read, запись сappointments:writeи лицом с правом «Управление расписанием». Занятое краткое имя отвечает409сslug-taken. Новые причины дляprecondition-failed:appointment-type-not-public,quota-portal-only.
v1.95.0 · 12 октября 2026 г.
- E-mail-кампании через API (область
campaigns, путь/email-campaigns, потому что/campaigns— партнёрские кампании):GET /email-campaigns/setup(подключение SendGrid, уведомления, подтверждённые домены, рекламные шаблоны, смарт-списки, теги, собственные адреса для тестового письма),GET/POST /email-campaigns,GET/PATCH/DELETE /email-campaigns/{id},POST /email-campaigns/recipient-count,POST /email-campaigns/{id}/check(проверка с Rspamd и тестовой отправкой в фоне,202),POST /email-campaigns/{id}/test-email(только на собственные адреса действующего лица, не более десяти в час, иначе429),POST /email-campaigns/{id}/start(сразу или сscheduledAt; жёлтый только сconfirmWarnings), а также/pause,/resume,/cancel. Каждый эндпоинт, включая чтение, требует ORG_ADMIN (403 forbidden, ключ без создателя —403 no-acting-user) и права организации «E-mail-кампании» (403 feature-not-available). Новые причины в422 precondition-failed:campaign-check-missing,campaign-check-outdated,campaign-check-red,campaign-check-warnings,sendgrid-not-connected,sendgrid-events-missing,sendgrid-not-ready,campaign-template-missing,campaign-template-not-marketing,campaign-selection-empty,campaign-smart-list-unknown; переход, который не допускает состояние, отвечает409сwrong-status.
v1.94.0 · 12 октября 2026 г.
- Цели вебхуков полностью через API (право
webhooks:manage):POST /webhook-targets(секрет в ответе),PATCHиDELETE /webhook-targets/{id},POST …/rotate-secret,GET …/secret,POST …/test(синхронно, с примерными данными или контактом; с контактом такжеcontacts:read),GET …/deliveries/{deliveryId}/body(такжеcontacts:read) иPOST …/deliveries/{deliveryId}/retry. - Новое: входящие хуки через API (
/inbound-hooks, правоwebhooks:manage): список, создание (состояниеLEARNING, по желанию с обязательным заголовкомAuthorization), чтение, изменение (название,recordTypes,mapping,state), удаление, обновление адреса, чтение требуемого заголовка, образец со списком путей (GET …/sample, такжеcontacts:read), доставки, тело доставки (такжеcontacts:read) и повторная обработка.
v1.93.0 · 12 октября 2026 г.
- Запись приёмов (право
appointments:write):POST /appointments(назначить; индивидуальный сcontactId, групповой сparticipantsиз смарт-списков, тегов и контактов),POST /appointments/{id}/cancel,/reschedule,/host,/type,/no-show,/participants,DELETE /appointments/{id}/participants/{contactId}иPOST /appointments/{id}/meeting(обновить видеоссылку). Те же проверки и те же письма, что внутри команды. Каждый из этих вызовов требует лица с правом «Управление расписанием» (владелец, ORG_ADMIN или отдельное право): без лицаno-acting-user, без праваforbidden. Занятое время отвечает409сslot-taken. Новые причины дляprecondition-failed:contact-without-phone,appointment-not-open,appointment-not-started,not-a-group-appointment,last-participant.
v1.92.0 · 12 октября 2026 г.
- Нумераторы и PDF-шаблоны в области
templates:GET/POST /number-circles,GET/PATCH /number-circles/{id}(префикс, от 6 до 12 разрядов, ежегодный сброс, а такжеissuedи следующий номер; если нумератор выдавал номера, префикс, разрядность и сброс изменить нельзя,409сformat-locked),GET/POST /pdf-templates,GET/PATCH /pdf-templates/{id}(название, нумератор, срок действия в месяцах, до четырёх мест подписантов) иPUT /pdf-templates/{id}/fields(полный список полей, проверка как в приложении; первая ошибка приходит как422 validation-failedс причиной в коде, напримерbindingUnknownилиnumberWithoutCircle). PDF-шаблон создаётся на PDF, предварительно загруженном и подтверждённом черезdocuments. Запись только если лицо за доступом — ORG_ADMIN. Ни нумератор, ни шаблон не удаляются:active: falseвыводит из использования.
v1.91.0 · 12 октября 2026 г.
- OAuth: право
webhooks:manageOAuth-доступ теперь получает, только если его пользователь является ORG_ADMIN в привязанной организации, как в интерфейсе. Проверка выполняется при согласии и при каждом вызове; если пользователь теряет роль, право отсутствует начиная со следующего вызова (403 insufficient-scope). На странице согласия для не-администраторов оно заблокировано. API-ключей это не касается: их создаёт только ORG_ADMIN. Описание эндпоинтов не изменилось.
v1.90.0 · 12 октября 2026 г.
- Чтение приёмов (право
appointments:read):GET /appointments(список по началу, фильтры по периоду, статусу, типу приёма, ресурсу и контакту),GET /appointments/{id}(та же форма, что в вебхукахappointments.appointment.*, плюс места, участники и ведущие),GET /appointment-typesиGET /appointment-types/{id}(все настройки, включая вид: индивидуальный, групповой или занятие, и услуги),GET /appointment-resourcesиGET /appointment-resources/{id},GET /appointment-types/{id}/slots(свободное время, как при назначении внутри команды, не более 62 дней за запрос). Приёмы с лабораторным направлением видны только с доступом к данным клиентов; иначе их нет в списке, а отдельный запрос отвечает404. Запись и настройка появятся в следующих версиях.
v1.89.0 · 12 октября 2026 г.
- Шаблоны через API (область
templates):GET/POST /message-templates,GET/PATCH /message-templates/{id}для шаблонов e-mail и SMS (формальная и неформальная версия, применениеcontactsилиpartnerPortal,purposetransactionalилиmarketing), а такжеGET/POST /letter-templates,GET/PATCH /letter-templates/{id}для шаблонов писем (с нумерацией для{{brief.nummer}}). Чтение сtemplates:read, запись сtemplates:writeи только если лицо за доступом — ORG_ADMIN (иначе403 forbidden, ключ без создателя —403 no-acting-user). Удаления нет:active: falseвыводит из использования. Неизвестные плейсхолдеры в шаблонах контактов отклоняют сохранение с422.
v1.88.0 · 12 октября 2026 г.
- Видеокомнаты (
/rooms, праваrooms:read/rooms:write):GET /roomsиGET /rooms/{id}(со ссылкой ведущего и гостя, пока комната открыта),POST /rooms/instant(мгновенная встреча с контактом; ведущий — создатель ключа),POST /rooms/{id}/participant-links(личная ссылка для приглашённого контакта или участника приёма),POST /rooms/{id}/close(только мгновенные встречи; комнаты приёмов закрываются с отменой приёма, иначе409сappointment-room),GET /rooms/{id}/recordings(видеозаписи и разговоры сdocumentId), а такжеGET/PATCH /rooms/settings(переключатель «Сводка», менять может только ORG_ADMIN). Видимость как у документов конференций (1.85.0): ORG_ADMIN видит все комнаты, остальные — только те, где они ведущие; ключ без создателя не видит ни одной. Новая причинаroom-not-configuredв422 precondition-failed; без права организации «Онлайн-комната» —403 feature-not-available.
v1.87.0 · 12 октября 2026 г.
- Три новые области с правами чтения и записи:
rooms(видеокомнаты),templates(шаблоны писем, e-mail, SMS и PDF вместе с диапазонами номеров) иcampaigns(e-mail-кампании). Эндпоинты появятся в следующих версиях; до тех пор права ещё не дают доступа. У шаблонов и кампаний свои права, потому чтоemail:writeразрешает только отправку, но не настройку и не массовую рассылку. - Два новых типа ошибок, оба
403:no-acting-user, если действие требует действующего лица (роль, отдельное право, автор), а у доступа его нет (API-ключ без создателя), иforbidden, если у лица доступа в организации нет права, которого требует интерфейс. Для ключа это тот, кто его создал, для OAuth-доступа — вошедший пользователь. Существующие эндпоинты свои ответы не меняют.
v1.86.0 · 12 октября 2026 г.
- Новая область
appointments(приёмы) с правамиappointments:readиappointments:write. Эндпоинты появятся в следующих версиях; до тех пор право ещё не даёт доступа. Приёмы, к которым привязан лабораторный запрос, как и в вебхуках, считаются данными клиентов: они видны, только если организация разрешила данные клиентов для API и у доступа есть правоclients:.
v1.85.0 · 12 октября 2026 г.
- Документы: документы конференций (записи и сводки онлайн-комнаты) видят только ORG_ADMIN организации и ведущий разговора. Для API-ключа учитывается пользователь, создавший его; ключ без создателя не видит ни одного. Тогда они отсутствуют в
GET /documents, аGET /documents/{id}отвечает404. Описание эндпоинтов не изменилось, поэтому это указано здесь. Событияdocuments.*по-прежнему уходят на вебхуки организации, которые настраивает только ORG_ADMIN.
v1.84.0 · 11 октября 2026 г.
- Новое событие
letters.email.received: письмо поступило на адрес ответов SendGrid организации и получило оценку.emailсодержитid,conversationId,from,subject,receivedAt,sentiment(positive,neutral,negative,null, если оценка не удалась),contactId(илиnull) иcampaignId, если письмо отвечает на кампанию (иначеnull). Без текста письма. Отправляется только после оценки; письма через входящие Resend (документы, пересылки) его не вызывают. В автоматизациях это триггер «Получено письмо» с фильтрами по оценке и кампании.
v1.83.0 · 11 октября 2026 г.
- Сценарии разговора (
/call-guides):content.resultsзадаёт результаты — именованные завершения сid,nameи необязательнымcolor(не более 20, название не более 80 символов), аresultу шага (type: point) или ответа ссылается на один из них. Он действует только на завершении; в другом месте сохраняется и игнорируется, неизвестный идентификатор при чтении отбрасывается. Результат без названия при сохранении отклоняется с422и кодомergebnis-ohne-name. До сих пор результаты, созданные в редакторе, терялись при обновлении через API.
v1.82.0 · 11 октября 2026 г.
callguides.run.completedтеперь содержитguideRun.resultIdиguideRun.resultName: именованный результат концовки, к которой пришёл проход (например, «Встреча назначена»). Организация задаёт результаты в сценарии и назначает их шагу без продолжения или ответу, ведущему к концу. Идентификатор и название берутся из версии, с которой шёл разговор. Если у этой концовки нет результата, оба значенияnull;outcome(последний шаг) не меняется.
v1.81.0 · 11 октября 2026 г.
leads.lead.createdтеперь наряду сconsent(элемент → отмечен) содержитconsentPurposes: цель каждого согласия, как в формах (1.79.0).INQUIRY— обязательная галочка «связаться по моему запросу», она не разрешает рекламу,MARKETING— добровольная галочка «реклама»,null— собственная галочка или более старая, объединяющая запрос и рекламу. Тот, кто выводит из события согласие на рекламу, учитывает толькоMARKETING(илиnull) сconsent=true. У лидов без формы (поиск специалистов, вручную) пустой объект.
v1.80.0 · 10 октября 2026 г.
kindу SMS (GET /sms,GET /sms/{id}, событияsms.message.*) получил новое значениеEINWILLIGUNG: нерекламная просьба подтвердить по ссылке согласие, данное в форме. Отправляется контакту через аккаунт Twilio организации, с названием организации в подписи.
v1.79.0 · 10 октября 2026 г.
- Формы: каждое согласие теперь содержит
purposeв определении формы (GET /forms/{id}) и в отправках (GET /forms/{id}/responses).INQUIRY— обязательная галочка «связь по моему запросу»,MARKETING— добровольная галочка «реклама»,null— собственная галочка или прежняя, объединяющая запрос и рекламу. У отправок до этой версии значениеnull. Согласием на рекламу является толькоMARKETING(или прежняя объединённая галочка);INQUIRYрекламу не разрешает.
v1.78.0 · 10 октября 2026 г.
- Новое событие
contacts.webhook.received: входящий хук организации принял и обработал запись из другой системы.hookсодержит идентификатор и название,company— компанию (существующую или созданную, иначеnull),contact— человека, а без человека саму компанию;contactStatusиcompanyStatusпринимают значенияnewилиexisting. Входящие хуки создаются в настройках в разделе Интеграции → Интерфейсы: собственный адресPOST /api/hooks/‹id›(вне/api/v1, по выбору с обязательнымAuthorization: Bearer …), который сразу принимает JSON или формы до 256 КБ с ответом202и обрабатывает их в очереди для каждого хука (не более 60 в минуту; свыше 600 в минуту отвечает429). В режиме обучения следующая доставка лишь сохраняется как образец, по которому сопоставляются поля.
v1.77.0 · 10 октября 2026 г.
- Передача другим организациям: новая область
handoversс правамиhandovers:readиhandovers:write(у существующих ключей их нет).GET /handover-connectionsперечисляет активные соединения, через которые эта организация может передавать (id,name,recipientName).POST /handoversсconnectionIdиcontactId(плюсcontacts:read) копирует контакт вместе с компанией в получающую организацию и отвечает201сhandoverId, никогда не сообщая, создан он или объединён. Ошибки:404(connection-unknown,not-your-connection,contact-unknown),422 precondition-failed(connection-revoked,connection-not-active),500(copy-failed). У получателя передача вызываетcontacts.handover.received(с 1.75.0); в автоматизациях для него есть фильтр по соединению и действие «Передать организации».
v1.76.0 · 10 октября 2026 г.
- Цели вебхуков: именованные адреса других систем, на которые отправляется контакт вместе с компанией, например новым действием «Отправить вебхук» в автоматизациях. В отличие от
/webhooks, цели не подписываются на события. Новое:GET /webhook-targets,GET /webhook-targets/{id},GET /webhook-targets/{id}/deliveries(журнал, 30 дней, с началом ответа) иPOST /webhook-targets/{id}/sendсcontactId(202, праваwebhooks:manageиcontacts:read;409 conflictсreason: target-inactive, если цель выключена). Отправка идёт в конверте событий сtype: contacts.contact.sentиdata={ contact, company, automation, test }, с подписью по Standard Webhooks секретом цели, с повторами через 1 мин, 5 мин, 30 мин, 2 ч и 12 ч; после пяти неудачных отправок подряд цель отключается. Создание, изменение, секрет и проверка — в настройках в разделе Интеграции → Интерфейсы.
v1.75.0 · 10 октября 2026 г.
- Новое событие
contacts.handover.received: другая организация передала этой контакт через соединение передачи.contact— контакт в этой организации (созданный заново или объединённый с существующим),company— его компания илиnull,handoverуказывает передачу, соединение (connectionId,connectionName) иoutcome(createdилиmerged). На него можно подписаться, как на любое событие, и оно служит триггером в автоматизациях. Сами соединения передачи появятся в одной из следующих версий.
v1.74.0 · 9 октября 2026 г.
- Переписка:
POST /outbound-emailsиPOST /smsпо выбору принимаютvorlageId, идентификатор шаблона из общего набора (применение «Контакты»). Тогда тема, текст, версия на «ты» (Du) и вид отправки берутся из шаблона в момент отправки, с его заполнителями (например{{person.firstName}},{{anrede}}); кто меняет шаблон, меняет следующую отправку. ЛибоvorlageId, либо свободный текст: для письмаsubjectиbodyHtmlтеперь обязательны только безvorlageId, для SMSbodyиart; вместе сvorlageIdих передавать нельзя, а для SMS тогда обязателенcontactId. Письмо из шаблона отправляется как из переписки с контактом (kind: gespraech, подпись с кодом переписки; рекламные шаблоны только при согласии на e-mail и со ссылкой для отписки). Новые причины в422 precondition-failed:message-template-not-found,message-template-archived(устранимо),message-template-without-sms(устранимо, только SMS),email-ohne-einwilligung.
v1.73.0 · 8 октября 2026 г.
- Формы: согласие на e-mail или телефон теперь считается запрошенным, только если заполнено поле его канала. Если поле пустое, согласие больше не попадает в
consentsотправки (GET /forms/{id}/responses,forms.response.submitted) и вconsentсобытияleads.lead.created, даже как отклонённое; переданноеtrueвPOST /forms/{id}/responsesв этом случае не сохраняется. Раньше оно указывалось всегда, сaccepted: falseили дажеtrueдля несуществующего адреса. Свободные согласия (каналCUSTOM) не изменились.
v1.72.0 · 8 октября 2026 г.
- Контакты: новое поле
dateOfBirth(«YYYY-MM-DD», только PERSON, от 1900 года до сегодняшнего дня) во всех ответах и событиях контактов, задаётся черезPOST /contactsиPATCH /contacts/{id}(nullочищает). Тот же формат, чтоclients.dateOfBirth, но у контакта; недопустимая дата или дата у компании возвращает422 validation-failed(body.dateOfBirth).
v1.71.0 · 8 октября 2026 г.
- Новые события для приёмов:
appointments.appointment.booked(подтверждён; при обязательной оплате — после оплаты),appointments.appointment.rescheduled(сpreviousStartsAt,previousEndsAtиby:customerилиprovider),appointments.appointment.cancelled(сbyиreason) иappointments.appointment.noShow(отмечено командой, сmarkedByUserId). Полезная нагрузка содержит приём вappointment, контакт — вappointment.contactId; автоматизации могут использовать эти события как триггеры. Сообщается только о подтверждённых приёмах. Приём с лабораторным направлением отправляется только на конечные точки с доступом к данным клиентов.
v1.70.0 · 8 октября 2026 г.
- Новое событие
calls.call.ended: звонок завершён, ровно один раз на звонок.callсодержит направление (inbound,outbound), результат (answered,missed,voicemailдля нашего автоответчика,failed), контакт (contactId,nullдля неизвестного номера), собеседника, номера, время иdurationSeconds. Заметки, запись и расшифровка разговора никогда не передаются. - Новое событие
callguides.run.completed: сценарий разговора завершён во время звонка (основной путь дошёл до конца, обязательных шагов не осталось), ровно один раз на прохождение; последующие изменения не вызывают его повторно.guideRunсодержит сценарий (guideId), контакт (contactId: собеседник, иначе контакт звонка),outcome(ID последнего шага),answers(вопрос → ответ в виде ID), использованные возражения и путь. Заметки никогда не передаются.
v1.69.0 · 8 октября 2026 г.
- Контакты, новые эндпоинты для отдельных изменений (действия автоматизаций):
POST /contacts/{id}/tags(tagIdиз набора илиtagтекстом) иDELETE /contacts/{id}/tags/{tag}(ID или текст) добавляют или удаляют один тег без отправки всего списка; существующий или отсутствующий тег ничего не меняет и не вызывает второго события.POST /contacts/{id}/notesсоздаёт заметку (простой текст, сохраняется как экранированный HTML).PUT /contacts/{id}/custom-fields/{slug}задаёт своё поле (value: текст, список ключей вариантов илиnull; не поля только карты клиента и не согласия).PUT /contacts/{id}/ownerназначает ответственного (userIdучастника илиnull). Обращение Du/Sie и стандартные поля по-прежнему черезPATCH /contacts/{id}.
v1.68.0 · 8 октября 2026 г.
- Новое событие
funnels.funnelLead.created: лид из формы воронки или сайта — с отправкой (lead.id), площадкой (lead.funnelId,lead.funnelName,lead.funnelKind), страницей формы (lead.stepId,lead.stepName,lead.stepPath), формой и контактом (lead.contactId). Только идентификаторы и названия, без персональных данных. Отправляется дополнительно кleads.lead.createdи доступно в автоматизациях как триггер «Лид из воронки или с сайта». leads.lead.createdиз воронки теперь содержитcontactIdи тогда, когда отправка создала потенциального клиента (его контакт); раньше там былоnull.
v1.67.0 · 8 октября 2026 г.
- Договоры из шаблона (
POST /contracts): новое полеsend(по умолчаниюfalse, как раньше только черновик). Приtrueдоговор отправляется, как только его PDF сформирован; ответ ещё показывает черновик, об отправке сообщает событиеesign.request.sent. ДополнительноreminderPolicyиlocale, как вPOST /signature-requests/{id}/send. Если формирование не удалось или длится дольше десяти минут, черновик остаётся.
v1.66.0 · 8 октября 2026 г.
- Ответы на формы (
GET /forms/{id}/responses,GET /forms/responses/{id}, событиеforms.response.submitted): новое полеcontactId— контакт, к которому относится ответ;null, пока его нет, и всегда для анкет карты клиента. Теперь в автоматизациях с триггером «Форма отправлена» доступны действия с контактом. - Ответы на формы: новое значение
bookingдляsource— отправлено через запись на встречу. Раньше такие ответы отображались какapi.
v1.65.0 · 5 октября 2026 г.
- Сценарии разговора: новый тип действия
consent({ type: "consent", channel: "EMAIL" }) — зафиксировать по телефону согласие на e-mail; формулировка берётся из контактов во время выполнения.channelпока толькоEMAIL; любое другое значение возвращает422 validation-failed.
v1.64.0 · 5 октября 2026 г.
- Сценарии разговора (
/call-guides) с действиями и вводом, всё необязательно: пункт может бытьaction(email,sms,callback,handover,checkout,appointment,form) или черезfieldзаписывать ввод в поле собеседника; вопрос черезfieldзаписывает выбранный ответ, а при заданномvalueу ответа — это значение (например, ключ варианта выбора);mandatory: trueделает шаг обязательным;actionsразмещает действия сбоку разговора. Новые причины проверки дляbody.content:aktion-unvollstaendig(нет шаблона или ссылки, действие сбоку без названия) иaction-and-field(пункт с тем и другим). При чтении и обратной записи сценария эти части сохраняются.
v1.63.1 · 5 октября 2026 г.
- Уточнение к 1.63.0 (ещё не выпущена):
contactFieldsв сценариях разговора принимает только ключи, которые может показать мини-окно сбоку разговора:title,website,addressStreet,addressPostalCode,addressCityилиcf:<slug>(строчные буквы, цифры,_). Другой ключ возвращает422 validation-failed, а не отбрасывается молча.
v1.63.0 · 5 октября 2026 г.
- Сценарии разговора (
/call-guides) умеют больше, всё необязательно: для шагаhint(подсказка только для человека у телефона) иcards(карточки-подсказки сtitle,text,color); для сценарияcards(видны всегда),objections(возражения сnameиstart, первым шагом их собственного пути) иcontactFields(дополнительные поля для мини-окна сбоку разговора). Заполнители работают и в подсказках, и в карточках. Новые причины проверки дляbody.content:karte-leerиeinwand-unvollstaendig.
v1.62.0 · 5 октября 2026 г.
- Новое: сценарии разговора для телефонии (чек-листы с ветвлением для звонков).
GET /call-guides,GET /call-guides/{id},POST /call-guidesиPATCH /call-guides/{id}, новые праваcallguides:readиcallguides:write; в API-MCP как инструментыcallguides_list,callguides_get,callguides_createиcallguides_update. У сценария естьstartиnodes:pointдля отметки илиquestionсanswers;nextведёт дальше (нет: следующий узел списка,null: конец, ID: к этому узлу). Сохраняется только содержимое без ошибок, иначе422с причинами дляbody.content. Каждое изменение названия, описания или содержимого — новая версия (version);activeпереключает без новой версии.
v1.61.0 · 4 октября 2026 г.
- Обязательное поле
artвPOST /sms(также MCPletters_sendSmsи действие LeadConnectorsms-send):notwendig(необходимое) илиwerblich(рекламное), без значения по умолчанию; запрос безartвозвращает422 validation-failedдляbody.art. Это строже прежнего, но никого не затрагивает: в production не было ни одного вызоваPOST /sms. Тип отправки определяет подпись SMS (необходимое: название организации; рекламное: название и «Keine SMS mehr? STOP antworten»), которая добавляется кbodyи учитывается в числе сегментов, а рекламное SMS уходит только контакту (contactId) с согласием на SMS: без контакта422 precondition-failedсreason=sms-werblich-ohne-kontakt, без согласия для номераreason=sms-ohne-einwilligung(обаfixable: false).
v1.60.2 · 4 октября 2026 г.
- Исправлено:
POST /documentsсcontactIdсвязывает документ с этим контактом, и связь теперь сохраняется после анализа документа. Раньше автоматическое сопоставление могло перезаписать её результатом поиска по имени или пустым значением, иGET /documents/{id}показывал другой контакт или никакой. Теперь автоматическое сопоставление заполняет только пустое; то же относится кPATCH /documents/{id}сcontactIdи последующему повторному анализу.
v1.60.1 · 4 октября 2026 г.
- Уточнение к 1.60.0, которая ещё не была выпущена: SMS участнику (
channel: sms) отправляется на стандартный номер из его профиля, если в этой организации он не указал номер для SMS-подтверждения, как при подписании и напоминаниях о записях.member-without-phoneвозникает, только если нет ни того, ни другого.
v1.60.0 · 4 октября 2026 г.
POST /organization/members/{userId}/notificationsтеперь может отправить и SMS:channel: smsуходит на мобильный номер, который участник указал для SMS-подтверждения в этой организации, иначе на стандартный номер из профиля (тот же порядок, что при подписании и напоминаниях о записях), через аккаунт Twilio организации; текст —titleиbody. Если нет ни того, ни другого:422 precondition-failed,reason=member-without-phone,fixable: true; если он недействителен:member-phone-invalid. Причины отправки SMS (twilio-*) действуют как дляPOST /sms(1.58.0), сетевые ошибки500. SMS появляется вGET /smsсkind: API.
v1.59.0 · 4 октября 2026 г.
kindу SMS (GET /sms,GET /sms/{id}, событияsms.message.*) получил новое значениеGESPRAECH: SMS, которое сотрудник написал вручную в переписке с контактом. Если вы обрабатываетеkind, допускайте неизвестные значения.
v1.58.0 · 4 октября 2026 г.
POST /smsтеперь отправляет только через собственный аккаунт Twilio организации (Организация → Интеграции); это касается и автоматизаций, и действия LeadConnectorsms-send. Без подключённого аккаунта, без номера отправителя или с недействительным доступом запрос возвращает422 precondition-failedсreason=twilio-nicht-verbunden,twilio-keine-nummerилиtwilio-zugang-ungueltigиfixable: true; SMS при этом не создаётся (раньше строка со статусомFAILEDи403 feature-not-available). Если получатель отправил STOP:422 precondition-failed,reason=twilio-empfaenger-gesperrt,fixable: false(часто только в обратном вызове, тогдаFAILEDсerrorCodeу SMS). Номер недействителен по данным Twilio:422 validation-failedдляbody.to. Иной отказ:409 conflict,reason=twilio-abgelehnt. Сетевая ошибка:500, можно повторить.- Лимит в 300 SMS на организацию в месяц отменён, так как с этой версии каждая организация сама оплачивает свои SMS.
429 sms-limit-reachedбольше не возникает; код остаётся в каталоге до v2.
v1.57.0 · 4 октября 2026 г.
POST /organization/members/{userId}/notificationsтеперь может отправлять и e-mail:channel: emailуходит на адрес участника,titleстановится темой,bodyтекстом,linkадресом в приложении. Если отправка не удалась, запрос возвращает500и его можно повторить. Ответ содержит использованный канал.- К документам карты клиента теперь относятся и вложения почты карты (сообщения портала в разделе карты). Для них действуют те же правила, что для лабораторных бланков и договоров с клиентами (1.54.0): без разрешения данных клиентов и права
clients:их нет вGET /documents, запрос по идентификатору (включая…/download-urlиPATCH) возвращает 404, а событияdocuments.document.*о них доставляются только на endpoints сclientsData: true.
v1.56.0 · 4 октября 2026 г.
- Новое:
POST /organization/members/{userId}/notificationsотправляет участнику организации сообщение в колокольчик (с push-уведомлением в браузере, если оно включено):title, необязательноbodyиlink(путь в приложении). Новое правоmembers:notify; в остальном участники остаются только для чтения. Пользователь, не являющийся участником, возвращает 404. Канал пока толькоchannel: notification; e-mail и SMS будут добавлены как новые значения.
v1.55.0 · 4 октября 2026 г.
POST /outbound-emailsпринимает версию на «ты» (Du):subjectDuиbodyHtmlDu, обе необязательны и действуют только вместе. Тогда claritos выбирает для каждого получателя по правилу обращения (обязательное «вы» для писем, личное «ты» при OAuth, настройка у контакта, иначе стандарт организации), и заполнители вроде{{ansprechpartner.anrede}}следуют тому же выбору. Если одной из них нет, письмо уходит полностью в версии на «вы», как и раньше. Выбор для каждого получателя подготовлен и будет включён для всех организаций одновременно; до тех пор каждое письмо уходит в версии на «вы», но версию на «ты» уже можно передавать.- Описание теперь перечисляет все ответы с ошибкой, которые может вернуть каркас:
409для изменяющих запросов (конфликт, ещё выполняющийся запрос с тем жеIdempotency-Key),413для запросов с телом (больше 1 МБ) и500везде. Поведение не изменилось; раньше эти коды лишь отсутствовали в описании.
v1.54.0 · 3 октября 2026 г.
- Вебхуки с данными клиентов теперь доставляются только на разрешённые endpoints. Новое поле
clientsDataвGET/POST/PATCH /webhooks: только endpoint сclientsData: trueполучает события с данными клиентов, то естьclients.record.created,clients.record.updated,clients.message.receivedи событияesign.request.*по договору с клиентом, и только пока организация разрешила данные клиентов для API. УстановитьclientsData: trueможно только сclients:readилиclients:write(иначе403 insufficient-scope) и только при разрешении (иначе403 clients-data-not-enabled). Проверка выполняется при каждой попытке доставки; если разрешение отозвано, ожидающая доставка завершается со статусомFAILEDиlastError=clients-data-not-allowed. Повторная отправка пропускает такие события для неразрешённого endpoint, аGET /webhooks/events/{type}/recentпоказывает их только ключу с правомclients:. До сих пор событияclients.*доставлялись на любой endpoint организации. - Документы карты клиента (лабораторные бланки, договоры с клиентами)
/documentsвозвращает только пока организация разрешила данные клиентов для API и ключ имеет правоclients:; иначе их нет вGET /documents, а запрос по идентификатору (включая…/download-urlиPATCH) возвращает 404. Для договора действует то же исключение, что и в 1.53.0: его создал или отправил пользователь, стоящий за ключом. - События
documents.document.ready,documents.document.analyzedиdocuments.document.updatedпо документам карты клиента (лабораторные бланки, документы договора с клиентом) считаются данными клиентов: они доставляются только на endpoints сclientsData: trueи только при разрешении данных клиентов в организации. В отличие от запросов, здесь нет исключения для создателя или отправителя, потому что вебхук не принадлежит пользователю.
v1.53.0 · 3 октября 2026 г.
- Договоры с клиентами только при разрешении клиентских данных: если в договоре или запросе на подпись участвует контакт с картой клиента (или его представитель),
GET /contracts,GET /signature-requests, одиночные запросы,…/events,…/pdf,…/sendи…/cancelвозвращают его, только если организация разрешила клиентские данные для API и у ключа есть правоclients:; иначе его нет в списках, а запрос по идентификатору отвечает 404. Исключение: договоры, которые создал или отправил пользователь, стоящий за ключом. Списки остаются полными,hasMoreверен.
v1.52.0 · 3 октября 2026 г.
- Поля карты клиента в шаблонах договоров: если организация ведёт практику, шаблоны также знают поля карты клиента как
<сторона>.akte.<поле>(дата рожденияdateOfBirth, номер картыrecordNumber, начало сопровожденияcareStartedAtи конецcareEndedAt, собственные поля карты и поля «только практика» как<сторона>.akte.custom.<slug>).variablesперечисляет их.POST /contractsзаполняет их, только если организация разрешила клиентские данные для API и у ключа есть правоclients:; иначе там стоит•••, и карта не читается.
v1.51.0 · 3 октября 2026 г.
- Шаблоны договоров знают больше переменных: для каждой компании, контактного лица и человека доступны все поля контакта (например,
company.1.email,company.1.legalFormName,company.1.contact.1.firstName,person.1.customerNumber), а также собственные поля организации как<сторона>.custom.<slug>(например,company.1.contact.1.custom.jahrgang).variablesвGET /contract-templatesперечисляет их, иwarningsбольше не сообщает о них какunknown-variable.POST /contractsзаполняет их из контактов. Также новоеcountryName(название страны на языке шаблона) рядом сcountry(код страны, напримерDE, без изменений). Все существующие переменные сохраняются.
v1.50.1 · 2 октября 2026 г.
POST /contract-templates/{id}/archiveотвечает200вместо201: архивирование ничего не создаёт. Так же отвечают и остальные действия, которые ничего не создают, например у предложений и документов.
v1.50.0 · 2 октября 2026 г.
- Шаблоны договоров теперь можно создавать, изменять и архивировать:
POST /contract-templates,PATCH /contract-templates/{id}иPOST /contract-templates/{id}/archive, правоcontracts:write, с теми же полями и проверками, что и в редакторе шаблонов.bodyHtmlочищается при сохранении: остаётся разметка редактора; скрипты, атрибуты событий, ссылки кромеhttp,https,mailtoиtel, а также изображения вне собственного хранилища организации удаляются. Ответ содержитwarningsс удалённым и с плейсхолдерами, которых не знают ни план сторон, ни фиксированные переменные (unknown-variable). Недействительный план сторон возвращает422, изменение архивированного шаблона409(archived), не деловая организацияfeature-not-available. Новое при чтении любого шаблона:anrede(AUTO,SIE,DU) иisFeeAgreement;formalостаётся.
v1.49.0 · 2 октября 2026 г.
- Контакт типа
PERSONс номером НДС отклоняется (422 validation-failed, путьbody.vatId, кодinvalid_combination): у кого есть номер НДС, тот является компанией. Это касаетсяPOST /contactsиPATCH /contacts/{id}, если изменение присваивает человеку номер НДС. Вместо этого создайте компанию (type: COMPANY, правовая форма индивидуального предпринимателя) с номером НДС и привяжите к ней человека как контактное лицо черезworksAtId. Изменения существующих контактов, которые ещё сохранены как человек с номером НДС, остаются возможными, пока они не задают номер НДС.
v1.48.0 · 1 октября 2026 г.
- У напоминаний об оплате (
GET /dunning/reminders,GET /dunning/reminders/{id}) появился новый статусSUPERSEDED: напоминание заменено более поздним по тому же требованию и больше не принимает оплату. Это происходит, как только фиксируется следующая ступень; до сих пор предыдущее оставалось в статусеSENT. Кроме того, напоминания, отправленные вне claritos до начала работы с ним, теперь можно задним числом внести как звено цепочки. Они отображаются соstatus: SENT,number: nullиfeeCents/interestCents, равными 0.portalUrlзаменённого или внесённого напоминания ведёт к действующему напоминанию или к счёту. Если вы обрабатываете статус, рассматривайтеSUPERSEDEDкак завершённую ступень, а не как открытое требование оплаты.
v1.47.0 · 27 сентября 2026 г.
- У документов появилось новое поле
accessсо значениемpublicилиprotected(GET /documents,GET /documents/{id},PATCH /documents/{id}, а также вебхукиdocuments.document.ready,.analyzedи.updated). Защищённые документы не доступны публично: у нихurlиpreviewUrlвсегда равныnull, даже когда документ готов. Файл получают по подписанной ссылке изGET /documents/{id}/download-url. Сейчас это касается только новых записей Zoom. Начиная с этой версииurlпомечено как устаревшее: позже оно станетnullдля всех документов, иGET /documents/{id}/download-urlбудет единственным способом получить файл. Если вы сохраняетеurl, переходите наdownload-urlуже сейчас.
v1.46.0 · 26 сентября 2026 г.
- Поле
addressFormу форм (GET /forms,GET /forms/{id}) теперь может возвращать иAUTO, наряду сDU(на «ты») иSIE(на «вы»).AUTOозначает, что у формы нет фиксированного обращения: она обращается так, как это задано организацией или контактом. Какое обращение фактически увидит человек, claritos решает при показе формы. Новые формы по умолчанию стоят наAUTO, а существующие формы сDUпереведены наAUTO, кроме шаблонов анамнеза, в которых сами вопросы сформулированы на «ты». Если вы до сих пор считали всё, кромеSIE, обращением на «ты», не относитеAUTOк «ты».
v1.45.0 · 26 сентября 2026 г.
- Изменено поведение
POST /signature-requestsсsend: trueиPOST /signature-requests/{id}/send: приглашения теперь отправляются всегда. Если подключение Gmail отправителя истекло, они уходят с адреса claritos, а ответы по-прежнему получает отправитель. До сих пор в этом случае они не отправлялись, аsenderInvalidбылоtrue. Поэтому с версии 1.45.0senderInvalidвсегдаfalse, помечено как устаревшее и будет удалено в v2. Если вы реагировали на него, например предложением «переподключить почтовый ящик», этот сигнал больше не приходит; подключение помечается в claritos как недействительное, и его владельцу там предлагается подключить его заново.
v1.44.0 · 26 сентября 2026 г.
- У контактов появилось поле
anrede:STANDARD(как настроено в организации),DU(на «ты») илиSIE(на «вы»). Доступно для чтения во всех методах контактов и в вебхукахcontacts.contact.createdиcontacts.contact.updated, для записи при создании и изменении. Действует только для людей: для компаний важно контактное лицо, там всегда возвращаетсяSTANDARD, аDUилиSIEу компании отклоняется с кодом 422 (validation-failed, путьbody.anrede).
v1.43.0 · 25 сентября 2026 г.
- Новое поле
paymentProviderу счетов, предложений и заказов, а также у их разделов:MOLLIE, если оплата онлайн идёт через платёжный слой, иначеnull. Доступно для чтения везде, для записи у счетов и предложений (заголовок и разделы). ИсключаетstripeEnabled(один онлайн-провайдер); чтобы перейти со Stripe на Mollie, в том же вызове укажитеstripeEnabled: false. Установить можно, только если организация подключила Mollie, иначеvalidation-failed. При записи разделов отсутствие поля означает «без провайдера». Событияinvoices.invoice.*тоже содержат это поле.
v1.42.0 · 25 сентября 2026 г.
- Новое событие
letters.certificate.expiredдля документов из PDF-шаблонов со сроком действия (например, сертификат, действующий три года). Оно отправляется один раз, на следующий день после последнего дня действия; если ежедневный запуск был пропущен, оно досылается в течение трёх дней. Событие содержитcertificate(идентификатор, шаблон, номер, контакт,validUntil,signed, код проверки) иcontact. Отозванные документы и документы, ожидающие подписи, ничего не отправляют. Напоминание до истечения срока является не событием, а триггером автоматизаций по дате.
v1.41.0 · 24 сентября 2026 г.
POST /letters/{id}/sendтеперь отказывает в отправке с409 conflictиreason=certificate-attachment-invalid, если вложение является выданным документом (сертификатом из PDF-шаблона) в недействительной версии: аннулированным, ещё не подписанным или заменённым подписанной версией. До сих пор такое вложение отправлялось. Та же проверка действует для писем из действия «Письмо из шаблона».
v1.40.0 · 24 сентября 2026 г.
- Новые эндпоинты для автоматизаций и интеграций.
POST /letters/from-templateсоздаёт письмо из шаблона письма для контакта и отправляет его, как только готов PDF (channel:EMAIL,POSTALилиBOTH; ответ 202 с письмом в статусеDRAFT).POST /outbound-emailsотправляет произвольное письмо контакту; тема и текст могут содержать те же плейсхолдеры, что и шаблоны писем, а запись затем появляется вGET /outbound-emailsсkind=message. Если у контакта нет нужных данных, оба эндпоинта отвечаютprecondition-failedсreason, напримерcontact-without-email,contact-without-address,postal-not-connected,template-archivedилиsender-invalid. Перехода на другой канал доставки нет. - При вызове из автоматизации оба эндпоинта распознают продолжение того же запуска: тот же шаг находит то же письмо или тот же e-mail, а не создаёт второй. Если письмо не удалось доставить уже после принятия (202), действующий пользователь получает уведомление; вызывающая сторона об этом пока не уведомляется.
v1.39.0 · 24 сентября 2026 г.
- Новый код ошибки
precondition-failed(422): не выполнено предварительное условие объекта, например у контакта нет адреса электронной почты. Ответ содержитreason(стабильный код, напримерcontact-without-email) иfixable(можно ли устранить ошибку, изменив данные). Для повтора после исправления данных нужен новыйIdempotency-Key: хранилище запоминает и этот ответ с ошибкой.
v1.38.0 · 24 сентября 2026 г.
- Новые события
contacts.tag.addedиcontacts.tag.removed: по одному событию на каждый тег, который назначен контакту или снят с него, сcontactIdиtagв той же форме, что иtagDetails(идентификатор, текст, описание, источник, группа). Событие отправляется только после сохранения изменения. Другое написание того же тега изменением не считается. Переименование, объединение и удаление в управлении тегами не вызывают событий, как и объединение контактов.
v1.37.0 · 24 сентября 2026 г.
kindу SMS (GET /sms,GET /sms/{id}, событияsms.message.*) получил новое значениеAPPOINTMENT_REMINDERдля напоминаний о встречах. До сих пор напоминания имелиAPI, хотя отправлялись не через API; более ранние напоминания сохраняютAPI. Напоминания о встречах не учитываются в лимите SMS (sms-limit-reached).- Добавлено задним числом: два значения вошли в контракт без собственной записи. (1) С 13.09 тип поля формы (
GET /forms/{id}) может бытьUPLOAD; ответом на такое поле служит идентификатор документа. (2) С 24.09taxCategoryу артикулов и у позиций предложений, заказов и счетов может иметь значениеOUTSIDE_SCOPE(не облагается налогом внутри страны, § 3a закона об НДС Германии). Клиентам, которые обрабатывают эти поля полностью, следует знать оба значения.
v1.36.0 · 24 сентября 2026 г.
- Запросы на подпись теперь знают источник
PDF_TEMPLATE: документ, созданный по PDF-шаблону, например сертификат с порядковым номером. Значение появляется в полеsourceKindзапросов в/esign, как фильтр?sourceKind=PDF_TEMPLATEи в данных событийesign.request.*. Если вы обрабатываетеsourceKindполностью, например вswitch, добавьте новое значение.
v1.35.0 · 24 сентября 2026 г.
- Новый код ошибки
sms-limit-reached(429) дляPOST /sms: через API, действие LeadConnector и автоматизации организация отправляет не более 300 SMS за календарный месяц (по немецкому времени); значение настраивается для каждой организации. Ответ содержитlimit,usedиresetsAtи заголовокRetry-Afterдо начала следующего месяца. Напоминания о встречах не учитываются.
v1.34.0 · 24 сентября 2026 г.
- Изменено поведение
tagsу документов:PATCH /documents/{id}больше не сохраняет теги в нижнем регистре и с-вместо пробелов. Каждый тег возвращается в написании из справочника тегов организации; если отправитьVIP, когдаvipуже существует, вернётсяvip. Теги, отличающиеся только регистром, пробелами или дефисами, считаются одним тегом. Неизвестный тег создаётся в том виде, в каком он отправлен; пробелы и специальные символы сохраняются, раньше пробелы заменялись на-, а специальные символы удалялись. - Фильтр
GET /documents?tag=теперь находит теги независимо от регистра, пробелов и дефисов; раньше он сравнивал точно.
v1.33.0 · 24 сентября 2026 г.
- У контактов рядом с
tagsтеперь естьtagDetails: для каждого тега постоянный идентификатор (id), текст (tag), пояснительное описание (label), источник (source) и группа (groupили null). Ту же форму получат планируемые события добавления и снятия тега. Вебхукиcontacts.contact.createdиcontacts.contact.updatedтоже передают это поле. Идентификатор не меняется при переименовании тега; для сопоставления тегов используйте его, а не текст. - Изменено поведение
tags: теги контактов больше не приводятся к нижнему регистру. Они возвращаются в написании из справочника тегов организации; если отправитьVIP, когдаvipуже существует, вернётсяvip. Теги, отличающиеся только регистром, считаются одним тегом. Пробелы и специальные символы сохраняются; раньше пробелы заменялись на-, а специальные символы удалялись. Фильтр?tag=теперь находит теги независимо от регистра; раньше теги с заглавными буквами не находились.
v1.32.1 · 15 сентября 2026 г.
- Открытые позиции (
/open-items) теперь доступны для любого типа организации, включая личные сферы и домохозяйства. Ранее API отвечал тамfeature-not-available, хотя приложение ведёт эти позиции. Без изменений: напоминания (/dunning/reminders) остаются только для бизнес-организаций.
v1.32.0 · 7 сентября 2026 г.
- Основа OAuth переведена на Better Auth 1.7 (новый плагин oauth-provider). Новое: отзыв и проверка токенов как отдельные точки, токены, привязанные к ресурсу, публичные клиенты без секрета, более строгая аутентификация клиентов. Закрыты две уязвимости прежней версии. Существующие подключения OAuth нужно один раз создать заново — клиенты, согласия и токены старой версии не переносятся. API-ключи (capi_) не затронуты.
v1.31.0 · 7 сентября 2026 г.
- MCP конструктора сайтов: список инструментов теперь фильтруется по разрешениям — доступ с sites:read больше не видит инструменты записи. Прямой вызов запрещённого инструмента по-прежнему отвечает 403 insufficient_scope.
v1.30.0 · 7 сентября 2026 г.
- Подключённые приложения в профиле: пользователи видят каждое разрешение OAuth (приложение, организация, разрешения обычными словами, действующие доступы, последний вход) и могут отозвать его сами. Отзыв удаляет привязку к организации, выданные токены и согласие — приложение сразу теряет доступ и при следующем подключении спрашивает заново.
v1.29.0 · 7 сентября 2026 г.
- Пункт меню LeadConnector: claritos может отображаться как custom menu link в LeadConnector (/embed/leadconnector в iframe). Зашифрованный контекст локации от LeadConnector читается ключом SSO приложения и показывает связанную организацию, активные триггеры и доступные действия. Контекст подтверждает локацию, а не личность в claritos — он не создаёт вход, и страница не показывает бизнес-данные.
v1.28.0 · 7 сентября 2026 г.
- Приложение Zapier: вход теперь через OAuth 2.1 (authorization code + PKCE, автоматическое обновление токена) вместо API-ключа — условие для публичного размещения. При подключении пользователи выбирают организацию и разрешения в согласии claritos; список запрашиваемых scopes генерируется из спецификации и не включает клиентские данные. Недостающие разрешения приходят как 403 в соответствующем действии.
v1.27.0 · 7 сентября 2026 г.
- События оформления заказа в стандартном формате: payments.checkout.pending / .completed / .failed (продажи по платёжной ссылке) теперь идут и через сервис вебхуков API — со стандартной подписью, повторами, журналом доставки, повтором отправки и оповещениями. Существующие вебхуки платёжной ссылки не меняются; для перехода подпишитесь на новые типы и отключите старую цель.
v1.26.0 · 7 сентября 2026 г.
- Согласие OAuth: разрешения можно снимать по отдельности (least privilege). Клиент получает только выбранные scopes — даже если запросил все; scopes клиентских данных по умолчанию сняты. Согласие без выбранного разрешения больше невозможно; пустой grant означает «нет прав API».
v1.25.0 · 6 сентября 2026 г.
- MCP конструктора сайтов (POST /api/mcp) теперь принимает и OAuth 2.1 access-токены (вход + согласие, scopes sites:read/sites:write) — чат-коннекторам (claude.ai, ChatGPT) больше не нужен cmcp_-токен; cmcp_-токены остаются действительными. Scopes проверяются для каждого инструмента (get_/list_/verify_/suggest_ = чтение, остальное = запись; 403 insufficient_scope). Метаданные защищённого ресурса для каждого MCP-сервера: /.well-known/oauth-protected-resource/api/mcp и …/api/mcp/v1.
v1.24.0 · 6 сентября 2026 г.
- Пользовательское приложение Make (integrations/make): дерево приложения полностью сгенерировано из спецификации — подключение API-ключ + среда, вебхук (attach/detach через /webhooks), один instant-триггер на тип события, модули action/search/get/delete на каждую конечную точку (поиск с курсорной пагинацией, действия с Idempotency-Key), отображение ошибок Problem Details; скрипт загрузки для Make Apps SDK API. Руководство «Make». Теперь все четыре платформенных приложения (LeadConnector, Zapier, n8n, Make) находятся в репозитории.
v1.23.0 · 6 сентября 2026 г.
- Community-узел n8n (integrations/n8n, npm n8n-nodes-claritos): обычный узел с resource = домен и operation = конечная точка (декларативно, сгенерировано из спецификации; списки распаковываются в data), триггер-узел с подпиской через POST /webhooks, проверкой подписи и очисткой при деактивации, учётные данные API-ключ + среда. Руководство «n8n».
v1.22.0 · 6 сентября 2026 г.
- Приложение Zapier (integrations/zapier): один REST-hook-триггер на тип события (подписка через POST /webhooks, проверка подписи, «Load sample» из /webhooks/events/{type}/recent), действия для всех конечных точек записи, поиск по всем спискам — полностью сгенерировано из спецификации. Новый снимок docs/api/events.v1.json (каталог событий с примерами). Руководство «Zapier».
v1.21.0 · 6 сентября 2026 г.
- Приложение LeadConnector Marketplace (путь C): установка на локацию (OAuth из настроек организации или External Authentication с API-ключом), пользовательские действия workflow (contact-create, task-create, sms-send, quote-create, invoice-create, form-response — через API-фреймворк с ключом пользователя), пользовательские триггеры workflow (lead_created, contact_created, invoice_paid, invoice_issued, quote_accepted, esign_completed, form_submitted, task_done — внутри это webhook-адреса). Руководство «LeadConnector».
v1.20.0 · 6 сентября 2026 г.
- MCP поверх API: POST /api/mcp/v1 (Streamable HTTP) — один инструмент на конечную точку (имя <domain>_<action>, ввод params/query/body как в справочнике, необязательный idempotencyKey при записи). Та же аутентификация (API-ключ или OAuth 2.1), те же scopes, гейт клиентских данных, лимиты и протокол, что и по HTTP; список инструментов показывает только разрешённое. Руководство «MCP».
v1.19.0 · 6 сентября 2026 г.
- OAuth 2.1: помимо API-ключей API теперь принимает OAuth-токены доступа (код авторизации + PKCE, refresh-токены, динамическая регистрация клиентов). Пользователь в окне согласия открывает ровно одну организацию; scopes те же, что у ключей. Discovery по адресам /.well-known/oauth-authorization-server и /.well-known/oauth-protected-resource. Руководство «OAuth» (потоки, согласие, Zapier/n8n).
v1.18.0 · 6 сентября 2026 г.
- Каталог специалистов + продукты (только чтение): GET /finder/practitioners (фильтры по радиусу, месту, языку, квалификации и теме; тот же поиск, что и на публичной странице каталога организации), GET /finder/practitioners/{slug} (профиль с адресами, направлениями, квалификациями; старые slug разрешаются), GET /finder/places (подсказки мест). GET /foods/search (результаты по категориям), GET /foods (список по категории), GET /foods/{id} (по ID или slug) — глобально, питательные вещества на 100 г, данные о порции, источник и указание источника в каждом ответе.
v1.17.0 · 6 сентября 2026 г.
- Организация (только чтение): GET /organization (реквизиты, адрес, налоговые/регистрационные данные, банк, логотип, адрес входящих, брендовый домен, уровень электронной подписи, настройки API), GET /organization/members (участники с ролью, видимостью, доступом к клиентам), GET /organization/invitations (приглашения; истёкшие отмечаются как EXPIRED), GET /organization/api-keys (собственные ключи — только метаданные, никогда хеш/открытый текст; isCurrent отмечает вызывающий ключ). Событие organization.member.joined (приглашение принято, организация создана).
v1.16.0 · 6 сентября 2026 г.
- Финансы (только чтение): GET /accounts, GET /accounts/{id} (план счетов с видом, подтипом, иерархией, проводимостью, банковскими данными и сальдо — канонически дебет − кредит плюс сальдо для отображения), GET /bookings, GET /bookings/{id} (журнал со строками по счёту/контакту/категории затрат, документами, связями с открытыми позициями, ссылкой на сторно; фильтр по периоду, статусу, счёту, контакту, документу), GET /statements, GET /statements/{id}, GET /statements/{id}/lines (банковские выписки с состоянием строк, привязанным счётом и сводкой по кредитной карте). События finance.booking.created (все пути создания) и finance.booking.reversed. Без записи в v1.
v1.15.0 · 6 сентября 2026 г.
- Почта/SMS/e-mail: GET/POST /letters (создать письмо, при необходимости сразу сгенерировать PDF), GET/PATCH /letters/{id}, POST /letters/{id}/generate (PDF асинхронно, pdfState), POST /letters/{id}/send (канал EMAIL, POSTAL или BOTH — почтовая отправка через подключённого провайдера платная), GET /letters/{id}/pdf, GET /postal-letters, GET /postal-letters/{id} (очередь со статусом, страницами, стоимостью, отслеживанием), GET/POST /sms, GET /sms/{id} (отправить SMS — платно — и прочитать статус доставки), GET /outbound-emails, GET /outbound-emails/{id} (исходящие письма всех разделов; письма клиентских карт исключены). События letters.letter.sent, letters.postal.submitted/sent/delivered/failed, sms.message.sent/delivered/failed.
v1.14.0 · 6 сентября 2026 г.
- Договоры/электронная подпись: GET /contract-templates, GET /contract-templates/{id} (шаблон с планом сторон, ключами переменных и HTML), GET/POST /contracts (договор из шаблона: стороны по слотам, название/место/дата, дополнительные переменные; воркер рендерит PDF асинхронно — renderState), GET /contracts/{id}, GET/POST /signature-requests (запрос подписи из PDF-документа со сторонами, при необходимости размещением полей, уровнем подписи, согласием; по умолчанию отправляется сразу), GET /signature-requests/{id}, POST …/send (отправка или повторная отправка; договоры только после рендера), POST …/cancel, GET …/events (цепочка хешей), GET …/pdf (запечатанный экземпляр или оригинал, короткоживущая ссылка). События esign.request.sent/completed/sealed/expired/declined/cancelled. Ссылки для подписи никогда не выдаются.
v1.13.0 · 6 сентября 2026 г.
- Партнёры: GET /affiliates, GET /affiliates/{id} (партнёр со статусом, видом договора, реферальным кодом, контактным лицом; без банковских/налоговых данных), GET /campaigns, GET /campaigns/{id} (кампания с глубиной, моделью, окном атрибуции, товарами, посадочными страницами, параметром ссылки), GET /affiliate-links (участие партнёр × кампания с кликами и готовыми ссылками по посадочным страницам), GET /conversions, GET /conversions/{id} (конверсия с брутто/комиссией/климатическим взносом/базой, статусом, состоянием оплаты, датами выплат и начислениями по уровню/роли), POST /conversions (сообщить о внешней конверсии — по реферальному коду или купону, идемпотентно по externalRef; та же семантика, что у вебхука конверсий), GET /commissions (начисления, только чтение). События affiliates.conversion.registered (из всех путей приёма: Stripe, купон, вебхук, вручную, API) и affiliates.conversion.settled. Без выплат и кредит-нот.
v1.12.0 · 6 сентября 2026 г.
- Клиенты (управление практикой, данные о здоровье): GET/POST /clients, GET/PATCH /clients/{id} (карта с номером, статусом, переопределением каналов, периодом сопровождения, сроком хранения), GET/PATCH /clients/{id}/fields (все поля карты с текущим значением; запись нескольких полей с моментом измерения/измерившим/причиной), GET/POST /clients/{id}/measurements (история значений с цепочкой исправлений; запись одного измерения), GET/POST /clients/{id}/messages (переписка с клиентом, сторона практики), GET /clients/{id}/files. Всё только при включении клиентских данных (договор об обработке) + clients:read/clients:write; каждый доступ протоколируется по карте (только идентификаторы). События clients.record.created, clients.record.updated, clients.message.received (только ссылки, без данных о здоровье в вебхуке).
v1.11.0 · 6 сентября 2026 г.
- Формы: GET /forms, GET /forms/{id} (определение: страницы, поля с ключом/типом/опциями/обязательностью/условиями, блоки матрица/повтор, согласия), GET /forms/{id}/responses, GET /responses/{id}, POST /forms/{id}/responses (серверная отправка без OTP; та же валидация, что у публичной формы; необязательный affiliateId для атрибуции; создаёт потенциального клиента + событие лида). Ответы форм клиентских карт только с включением клиентских данных + clients:read. Событие forms.response.submitted (также для публичных форм и форм воронки; формы клиентских карт только как ссылка).
v1.10.0 · 6 сентября 2026 г.
- Документы: GET /documents (status, type, taskId/
none, contactId, tag, financeRelevant, q, updatedSince), GET /documents/{id}, POST /documents (presigned PUT-URL для прямой загрузки в R2, 5 мин) + POST /documents/{id}/confirm (READY, запускает OCR/ИИ или парсер выписки), GET /documents/{id}/download-url (короткоживущая ссылка с именем файла), PATCH /documents/{id} (название, тип, задача, контакт, теги). Извлечённые ИИ поля вextracted. События documents.document.ready/analyzed/updated.
v1.9.0 · 6 сентября 2026 г.
- Учёт времени: GET/POST /time-entries, GET/PATCH/DELETE /time-entries/{id}, POST /time-entries/{id}/stop. POST без endTime запускает таймер (один на пользователя; останавливает другие, переводит задачу в IN_PROGRESS). Выставленные записи неизменяемы (409 billed). Фильтры taskId, userId, projectId, from/to, isBillable, isBilled, running, updatedSince. События time.timeEntry.created/updated/deleted.
v1.8.0 · 6 сентября 2026 г.
- Проекты: GET/POST /projects, GET/PATCH/DELETE /projects/{id} — многоязычное название как у задач, клиент + контактное лицо, родительский проект (без циклов), бюджет времени (минуты, предоплата), период; показатели открытых задач, учтённых и оплачиваемых минут. Фильтры q, customerContactId, parentId (
none= верхний уровень), activeOn, updatedSince. События projects.project.created/updated/deleted.
v1.7.0 · 6 сентября 2026 г.
- Задачи: GET/POST /tasks, GET/PATCH/DELETE /tasks/{id}, POST /tasks/{id}/status, GET/POST /tasks/{id}/comments. Многоязычные название/описание: чтение на языке запроса (?locale или Accept-Language) плюс полный titleI18n; запись строкой или объектом {de,en,ru}, язык организации переводится автоматически. Завершение останавливает таймеры, закрывает наблюдателей и создаёт следующее повторение, как в приложении. События tasks.task.created/updated/completed/deleted, tasks.comment.created.
v1.6.0 · 6 сентября 2026 г.
- Открытые позиции: GET /open-items (direction, status вкл. open/overdue, contactId, invoiceId, q, updatedSince), GET /open-items/{id} (суммы в центах, скидка, состояние напоминаний, платежи = связанные проводки), POST /open-items/{id}/payments (платёж как проводка «банк на лицевой счёт» вкл. распределение по § 367 открытых расходов на напоминания; частично через amountCents; markOnly для простой смены статуса). Напоминания: GET /dunning/reminders и GET /dunning/reminders/{id} (уровень, требование/сбор/проценты/итого в центах, PDF, ссылка портала). События payments.payment.recorded (все пути оплаты), dunning.reminder.sent, invoices.invoice.overdue (при создании уровня напоминания).
v1.5.0 · 6 сентября 2026 г.
- Счета: GET /invoices (фильтры status вкл. open/overdue, kind, contactId, orderId, q, updatedSince), GET/POST /invoices, PATCH /invoices/{id} (только черновики — GoBD), POST …/issue (номер, проводка, открытая позиция, PDF + ZUGFeRD), POST …/correct (mode cancel = сторно-документ, mode value = корректировка суммы KOR-…), GET …/pdf (финальный или предпросмотр), GET …/xml (ZUGFeRD XML как application/xml). Суммы в центах + точные десятичные строки; брутто-режим (priceMode GROSS) с брутто-ценами. События invoices.invoice.created/issued/sent/paid/cancelled/corrected — также при оплате через Stripe/чекаут/рассрочку/закрытие открытой позиции.
v1.4.0 · 6 сентября 2026 г.
- Заказы: GET /orders (фильтры status/draft, contactId, sourceQuoteId, q, updatedSince), GET /orders/{id} (позиции с выставленным/снятым/открытым количеством, разделы, связанные счета, PDF подтверждения), GET /orders/{id}/pdf. POST /quotes/{id}/convert: выставить и принять предложение и превратить его в заказ через маршрутизатор принятия (номер заказа, PDF, автоматическая отправка, при необходимости авансовый счёт); ждёт до 25 с, иначе routing-pending. Событие orders.order.created (источник quote|manual|duplicate).
v1.3.0 · 6 сентября 2026 г.
- Предложения: GET/POST /quotes, GET/PATCH /quotes/{id} (шапка, позиции, разделы; ссылка на артикул заполняет название/единицу/цену/налог), POST …/issue (номер + ссылка портала + PDF), POST …/send (e-mail с PDF; ждёт до 25 с рендеринга, иначе pdf-pending), POST …/accept и …/decline (от имени клиента; принятие запускает заказ/авансовый счёт), GET …/pdf (статус + URL). Суммы в центах + точная десятичная строка. События quotes.quote.created/updated/sent/accepted/declined — также при принятии в клиентском портале.
v1.2.0 · 6 сентября 2026 г.
- Артикулы: GET/POST /articles, GET/PATCH /articles/{id} — поиск q, фильтры kind/archived, updatedSince; цены как unitPriceCents + unitPriceExact (четыре знака после запятой), валюта = базовая валюта организации; архивирование через PATCH archived (без DELETE). События articles.article.created/updated. Новый код ошибки feature-not-available (403), если функция недоступна для типа организации.
v1.1.0 · 6 сентября 2026 г.
- Вебхуки: GET/POST /webhooks, GET/PATCH/DELETE /webhooks/{id}, POST …/rotate-secret, POST …/test, GET …/deliveries, POST …/replay; каталог GET /webhooks/events с …/{type}/sample и …/{type}/recent. Подпись по Standard Webhooks (webhook-id, webhook-timestamp, webhook-signature), повторы через 1 мин/5 мин/30 мин/2 ч/12 ч, endpoint отключается после пяти неудач подряд. Scope webhooks:manage.
- События: contacts.contact.created/updated/deleted, leads.lead.created, webhooks.test.
v1.0.0 · 6 сентября 2026 г.
- Первая версия публичного API: ключи (capi_…), scope, ошибки по RFC 9457, курсорная пагинация, Idempotency-Key, лимиты, GET /me.
- Контакты: GET/POST /contacts, GET/PATCH/DELETE /contacts/{id} — поиск (q), фильтры type/tag, updatedSince; пол определяется ИИ, если не указан.