Skip to main content
Вместо периодического опроса подпишитесь на события и обновляйте свою копию, как только сотрудника завели или уволили в ТОО «Керуен». Событие лишь сообщает, что именно изменилось, — актуальные данные вы забираете своим ключом.
Подписками управляет область webhooks:manage, а перечитывание карточек требует employees:read.
1

Подпишитесь на события

Заведите endpoint на приём и удаление сотрудников. secret в ответе показывается один раз — сохраните его в менеджере секретов, им проверяется подпись каждой доставки.
employee.changed объединяет создание и изменение: отдельного created нет намеренно. Обрабатывайте событие как upsert — источник не всегда может надёжно отличить первое появление сотрудника от последующего изменения.
2

Проверьте подпись

Каждая доставка несёт заголовок Doodocs-Signature: t=<unix>,v1=<hex>, где v1 — это HMAC-SHA256(secret, "{t}.{тело запроса}") в hex. Отклоните запрос, если подпись не сходится или t старше пяти минут (защита от повторов).
3

Перечитайте и примените upsert

В payload приходит только employee_id. Забирайте карточку своим ключом — так к данным применяются область ключа и редакция полей, а персональные данные не уезжают на внешний URL.
  • employee.changed → перечитайте GET /employees/{employee_id} и сделайте upsert по id.
  • employee.deleted → перечитывание вернёт 404 EMPLOYEE_NOT_FOUND. Не считайте это ошибкой: событие самодостаточно, пометьте сотрудника удалённым.

Обработчик

Дедуплицируйте по id события (доставка «хотя бы один раз»), ответьте 2xx быстро, а тяжёлую работу выносите в фон.
Между employee.changed и вашим перечитом сотрудника могут удалить — тогда GET /employees/{id} вернёт 404. Трактуйте это как удаление, а не как сбой.

Дальше

Синхронизировать всех сотрудников

Первичная выгрузка и полный перечит для сверки удалений.

Вебхуки

Все типы событий, надёжность доставки и отладка.