Хуки установки и удаления
Установка
Когда клиент устанавливает вашу интеграцию, Bito отправляет код авторизации методом POST на ваш redirect_uri. Редиректа пользователя нет — это вызов сервер-сервер.
Что присылает Bito
POST https://your-app.example.com/bito/installed
Content-Type: application/json
X-Bito-Signature: t=1736937000,v1=6b1f0a...c94e
{
"code": "abc123def456",
"client_id": "69c50a2d50f7b939923a469b",
"account_id": "507f1f77bcf86cd799439011"
}Проверьте, что запрос пришёл от Bito
Оба POST — установка и удаление — несут заголовок X-Bito-Signature: t=<unix-секунды>,v1=<hex>, где v1 = HMAC_SHA256(client_secret, "{t}.{raw_body}") по байтам тела. Пересчитайте его, сравните за константное время и отклоняйте устаревшие (t старше ~5 минут) запросы. Полное объяснение и код — в разделе Поток установки → Проверьте, что запрос действительно пришёл от Bito.
Обменяйте code на токены в течение 20 минут — см. вызов API. Сохраните полученные токены рядом с account_id.
Удаление
Когда клиент удаляет интеграцию, Bito отправляет POST на ваш revoke_access_hook_uri.
Что присылает Bito
POST https://your-app.example.com/bito/revoked
Content-Type: application/json
X-Bito-Signature: t=1736937000,v1=6b1f0a...c94e
{ "account_id": "507f1f77bcf86cd799439011" }Этот POST подписан так же, как при установке — проверьте заголовок X-Bito-Signature, прежде чем доверять ему.
Удалите или отключите всё, что вы храните по этому аккаунту. Со стороны Bito его токены уже недействительны.
WARNING
Удаление удаляет все вебхуки вашей интеграции в этом аккаунте. Если клиент установит её снова, подписка webhook_uri создаётся заново автоматически, а адреса, добавленные через webhook/subscribe, нужно подписать заново.
Повторная установка не выдаёт новый секрет подписи: вебхуки подписываются секретом клиента (client_secret), и он меняется только при смене секрета.