Подписками управляет область
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→ перечитывание вернёт404EMPLOYEE_NOT_FOUND. Не считайте это ошибкой: событие самодостаточно, пометьте сотрудника удалённым.
Обработчик
Дедуплицируйте поid события (доставка «хотя бы один раз»), ответьте 2xx
быстро, а тяжёлую работу выносите в фон.
Дальше
Синхронизировать всех сотрудников
Первичная выгрузка и полный перечит для сверки удалений.
Вебхуки
Все типы событий, надёжность доставки и отладка.